Daemon Threads cung cấp dịch vụ cho các chủ đề người dùng, ngoài gc
Một ví dụ khác (trường hợp) có thể sử dụng một chuỗi daemon? (Bất kỳ nhiệm vụ (logic) nào có thể nằm trong phương thức run()
của daemon
Thread
trong thực tế)Daemon thread- Trường hợp sử dụng
Trả lời
Dưới đây là một danh sách ngắn khi bạn có thể muốn sử dụng một daemon thread:
- Thu thập thống kê và thực hiện nhiệm vụ giám sát tình trạng - Gửi và nhận nhịp đập con tim mạng, cung cấp các dịch vụ cho các công cụ giám sát, và vân vân.
- Thực hiện các tác vụ I/O không đồng bộ - Bạn có thể tạo một hàng đợi các yêu cầu I/O và thiết lập một nhóm các chủ đề daemon phục vụ các yêu cầu này một cách không đồng bộ.
- Lắng nghe các kết nối đến - chuỗi chủ đề rất thuận tiện trong các trường hợp như thế này, vì chúng cho phép bạn lập trình vòng lặp "mãi mãi" đơn giản hơn là tạo thiết lập chú ý đến yêu cầu thoát khỏi chuỗi chính.
Tôi đang suy nghĩ về đề xuất gửi thống kê người dùng (về hiệu suất của công cụ hoặc hoạt động của người dùng trên công cụ đó) như nhật thực hoặc công cụ khác, ý tôi là tạo ra các loại báo cáo trong chuỗi daemon đúng? – LeandreM
@ user976095 Tuyệt đối, các loại nhiệm vụ I/O mạng này nên được thực hiện trên các chủ đề daemon. Với tôi, daemon/non-daemon "cutoff" chung đi dọc theo dòng "cho người dùng" và "cho chương trình". Gửi số liệu thống kê chắc chắn là "cho chương trình", không phải "cho người dùng". Người dùng sẽ không đánh giá cao việc chờ chuỗi thống kê của bạn kết thúc khi họ đóng chương trình, do đó, chuỗi nên chạy trong chế độ daemon. – dasblinkenlight
Âm thanh như một câu hỏi chuyển nhượng ha ha.
Bạn cũng có thể sử dụng chúng cho IO vì khối hoạt động IO và cách tốt nhất để thực hiện điều đó trong luồng công nhân.
Ngoài ra hoạt động mạng nếu bạn đang chờ đợi mọi thứ tải xuống, chẳng hạn như phản hồi cho yêu cầu đăng bài.
Chuỗi chủ đề thường được sử dụng để thực hiện các dịch vụ cho ứng dụng/applet của bạn (chẳng hạn như tải "bit fiddley"). Sự khác biệt cốt lõi giữa các luồng người dùng và các chủ đề daemon là JVM sẽ chỉ đóng một chương trình khi tất cả các luồng người dùng đã chấm dứt. Các chuỗi Daemon được JVM chấm dứt khi không còn bất kỳ luồng người dùng nào đang chạy, bao gồm cả chuỗi chủ đề thực thi chính.
Tóm lại: chủ đề daemon không ngăn chương trình thoát; chủ đề người dùng giữ cho chương trình thoát khỏi.
- 1. phát hiện Interpreter tắt trong daemon thread
- 2. Trường hợp sử dụng DropBoxManager?
- 3. ThreadPool.QueueUserWorkItem trường hợp sử dụng
- 4. PHP Daemon/môi trường công nhân
- 5. Cách sử dụng jstack để tìm blocker-thread
- 6. Trường hợp sử dụng cho LinkedList
- 7. sử dụng enum trong chuyển/trường hợp
- 8. OAuth: Trường hợp sử dụng OAuth
- 9. Trường hợp hiếm khi sử dụng MACRO
- 10. Trường hợp sử dụng PipedInputStream và PipedOutputStream
- 11. Trường hợp jdbc Rowsets được sử dụng?
- 12. Trường hợp sử dụng để phản ánh
- 13. Trường hợp sử dụng cho JCA
- 14. Trường hợp sử dụng nào cho OWL?
- 15. Các trường hợp sử dụng cho IdentityHashMap
- 16. Việc sử dụng các lệnh Step Over Thread và Step Into Thread là gì?
- 17. Trường hợp không nên sử dụng các trường hợp ở Scala?
- 18. Executor và Daemon trong Java
- 19. Sử dụng nguyên tử với std :: thread in C++ 11
- 20. Sự khác nhau giữa một daemon thread và một chủ đề ưu tiên thấp
- 21. Hiệu quả Python Daemon
- 22. Sử dụng cần tây làm daemon với nhiều ứng dụng django?
- 23. nên WebClient trường hợp được tái sử dụng trong Silverlight
- 24. Trường hợp sử dụng Quy định trong tham
- 25. Phạm vi nguyên mẫu mùa xuân - Trường hợp sử dụng?
- 26. Trường hợp nhà thầu ảo được sử dụng?
- 27. Thay đổi trường hợp bằng cách sử dụng Javascript regex
- 28. Trường hợp sử dụng cho Google Prediction API
- 29. Trường hợp sử dụng tốt các nhận xét
- 30. Trường hợp sử dụng cho Clojure trong các dự án
@ user976025 bài đăng của bạn phải được đánh dấu là wiki cộng đồng, vì nó dễ bị thảo luận thay vì yêu cầu câu trả lời chính xác và rõ ràng. –