Chúng tôi đã có phương thức setPriority() để đặt chuỗi có mức độ ưu tiên thấp. Sau đó, tại sao chúng ta cần một chủ đề daemon. Sự khác nhau giữa chúng là gì?
Thông thường, các chuỗi daemon không có liên quan gì đến ưu tiên. Ví dụ, trong Java, JVM sẽ tắt khi tất cả các luồng không phải daemon của người dùng kết thúc. Việc đánh dấu một chuỗi là một chuỗi daemon có nghĩa là nó có thể bị giết một cách an toàn khi JVM thoát.
Ưu tiên sắp xếp lịch - về tần suất một chuỗi nhận được một lát thời gian so với các luồng khác đã sẵn sàng để chạy. Bạn có thể có các chủ đề daemon ưu tiên thấp hoặc các chuỗi daemon ưu tiên cao. Bạn có thể có chủ đề không phải daemon cũng là ưu tiên thấp và cao.
Các khái niệm là trực giao (loại trừ lẫn nhau) - ít nhất là trong mô hình chuỗi Java.
Về mặt thời gian tạo một trình nền chủ đề, tôi sử dụng các chủ đề daemon cho bất kỳ tác vụ nào mà tôi không quan tâm nếu chúng bị gián đoạn khi JVM thoát: chủ đề tiếp tục, bộ xử lý thống kê, xử lý nhật ký, v.v. Mọi nhiệm vụ quan trọng đối với ứng dụng là một chủ đề không phải daemon phải bị gián đoạn cụ thể hoặc được báo hiệu để thoát khỏi bằng cách nào đó.
Chúng ta đang nói về ngôn ngữ nào? – Gray
..và hệ điều hành nào ?? –
Hãy nhớ chấp nhận câu trả lời của tôi nếu nó hữu ích. – Gray