Tôi muốn thay vì đây là một bình luận nhưng cần quá nhiều nhân vật. Dù sao, ozgur, đánh giá bằng các câu hỏi trong câu trả lời nhận xét của bạn, bạn dường như đang thiếu điểm mà bạn không thể đơn giản nói rằng chủ đề của tôi mất nhiều thời gian để chạy và mong đợi nó hoạt động kỳ diệu cùng với các chủ đề khác nhờ vào HĐH. Bạn phải thiết kế các chủ đề của bạn và phân tích chúng cho hiệu suất trường hợp xấu nhất. Nếu trường hợp xấu nhất không đáp ứng yêu cầu của bạn thì bạn cần thiết kế lại chủ đề của mình.
Vì vậy, thay vì chỉ đơn giản là nói luồng 1 mất 10 ms để hoàn thành và luồng 2 mất 20 ms, bạn cũng phải nói luồng 1 phải thực hiện cứ sau 15 ms. luồng 2 phải thực thi cứ sau 40 ms. thread 3 phải thực thi cứ sau 500 ms, threadN phải thực thi sau mỗi 1500 ms. Sau đó, bạn phân bổ thời gian cho mỗi luồng có thể mất bao lâu để hoàn thành trong trường hợp xấu nhất. Bạn đặt tất cả những thứ đó lại với nhau, xác định các tình huống xấu nhất có thể xảy ra và sau đó bạn phải đảm bảo mọi luồng đều đáp ứng các yêu cầu về thời gian của nó. Phân tích này cũng là nơi bạn xác định nếu một số chủ đề cần được ưu tiên cao hơn các chủ đề khác để đáp ứng yêu cầu về thời gian của chúng.
Ví dụ, luồng 5 đang chạy bị gián đoạn bởi luồng 4 bị gián đoạn bởi luồng 3 bị gián đoạn bởi luồngN có thể là một trường hợp xấu nhất. Bạn đặt tất cả điều này lên dòng thời gian và xác minh rằng ngay cả trong trường hợp xấu nhất này, mọi luồng đều đáp ứng các yêu cầu về thời gian của nó. Bạn có thể đảm bảo các luồng hoàn thành kịch bản trường hợp xấu nhất này một cách xác định bằng cách sử dụng bộ lập lịch và các ưu tiên trong HĐH thời gian thực. Sự quyết định đó là những gì tạo nên một hệ điều hành thời gian thực.
Nếu bạn tạo các luồng có cùng mức độ ưu tiên thì bạn đã mất một số (nếu không phải tất cả) tính xác định đó bởi vì trình lập lịch biểu có thể được tự do chọn bất kỳ luồng nào mà nó muốn chạy tiếp theo.
Trong một hệ điều hành như Windows, bạn không chỉ không thể chỉ định khi nào mỗi luồng sẽ chạy, thậm chí bạn không thể đảm bảo rằng ứng dụng của bạn sẽ chạy bất cứ lúc nào. HĐH có thể tạm dừng ứng dụng của bạn và chạy một số dịch vụ nền bất cứ khi nào nó chọn. Nói cách khác, không có tính quyết định. Do đó, Windows không phải là một hệ điều hành thời gian thực. Mặc dù, nếu yêu cầu về thời gian của bạn lớn, như (thread1 chạy cứ sau 10 giây, thread2 chạy cứ sau 15 giây) thì về cơ bản bạn có thể đối xử với Windows như một hệ điều hành thời gian thực miễn là bạn tính đến việc trượt và cứ sau 10 hoặc 15 giây (cho hoặc mất vài trăm mili giây và một cửa sổ thỉnh thoảng bị bỏ lỡ) là đủ tốt.