我想知道,将线程分配给线程组而不是将它们全部包含在一个(主要)组中有什么好处?
假设有10个或更多持续活动的线程,并且在应用程序需要时不时地启动了几个线程,那么如何对这些线程进行分组?
谢谢, 亚当。
答案 0 :(得分:3)
根本没有任何优势。 ThreadGroups是为了向后兼容,但我从未见过它们。
这是很久以前Brian Goetz( Java Concurrency in Practice - 圣经)said about them的作者:
ThreadGroup类最初打算用于 将线程集合构造成组。但事实证明 ThreadGroup并不是那么有用。你最好简单 使用Thread中的等效方法。 ThreadGroup确实提供了一个 Thread中没有(还)存在的有用功能:uncaughtException() 方法。当线程组中的线程退出时,因为它抛出了一个 未捕获的异常,ThreadGroup.uncaughtException()方法 叫做。这使您有机会关闭系统,写 消息到日志文件,或重新启动失败的服务。
线程现在有一个unauht异常处理程序,这个使用线程组的原因不再有效。