我想知道,将线程分配给一个线程组而不是将它们全部包含在一个(主)组中有什么好处?
假设有10个或更多持续活动的线程,并且根据应用程序的需要时不时地启动几个线程,那么如何对这些线程进行分组?
谢谢,亚当。
发布于 2012-07-03 19:24:20
这根本没有什么好处。ThreadGroups是为了向后兼容而存在的,但我从未见过它们被使用过。
这是Brian Goetz (《Java Concurrency in Practice - the bible》的作者)很久以前在said about them上说的话:
ThreadGroup类最初的目的是用于将线程集合组织到组中。然而,事实证明ThreadGroup并不都那么有用。简单地使用Thread中的等效方法会更好。ThreadGroup确实提供了线程中没有的一个有用的特性: uncaughtException()方法。当线程组中的线程因为抛出未捕获的异常而退出时,将调用ThreadGroup.uncaughtException()方法。这使您有机会关闭系统、将消息写入日志文件或重新启动失败的服务。
线程现在有一个uncauht异常处理程序,使用线程组的这个单一理由不再有效。
https://stackoverflow.com/questions/11302569
复制相似问题