2013-09-21 75 views
5

守护程序线程除了gc之外还提供用户线程服务什么是可以使用守护程序线程的另一个示例(案例)? (任何任务(逻辑)可以在run()方法的0123kThread在实践中)守护程序线程 - 使用案例

+1

@ user976025你的帖子应该标记为社区wiki,因为它很容易讨论,而不是要求一个确切的答案。 –

回答

4

这里是当你可能需要使用一个守护线程的简短列表:

  • 收集统计信息和执行状态监控任务 - 发送和接收网络心跳,以监视工具提供的服务,等等。
  • 执行异步I/O任务 - 您可以创建一个I/O请求队列,并设置一组异步服务这些请求的守护进程线程。
  • 监听传入连接 - 守护进程线程在这种情况下非常方便,因为它们让您编程一个简单的“永久”循环,而不是创建一个注意从主线程退出请求的设置。
+0

我正在考虑发送用户统计信息(关于工具的性能或用户在该工具上的活动)的建议,比如eclipse或任何其他工具,我的意思是在守护进程线程中生成这些报告不是它对? – LeandreM

+0

@ user976095当然,这些类型的网络I/O任务应该在守护进程线程上完成。对我来说,一般的守护进程/非守护进程“切断”沿着“为用户”而不是“为程序”行。发送统计信息肯定是“针对该程序”,而不是“针对用户”。用户不希望在关闭程序时等待统计线程完成,因此线程应该以守护进程模式运行。 – dasblinkenlight

2

听起来像一个转让问题哈哈。

您也可以将它们用于IO,因为IO操作块及其在工作线程中的最佳做法。

还有网络活动,如果你正在等待事情下载等,如对邮寄请求的回复。

1

守护线程通常被用来为您的应用/小应用程序(比如装载的是“fiddley位”)提供服务。用户线程和守护进程线程的核心区别在于,当所有用户线程终止时,JVM只会关闭一个程序。当不再有任何用户线程运行时,守护程序线程将由JVM终止,包括主线程的执行。

总之:守护进程线程不会阻止程序退出;用户线程阻止程序退出。