0

我想知道,将线程分配给线程组而不是将它们全部包含在一个(主)组中的优点是什么?

假设有 10 个或更多持续活动的线程,并且根据应用程序的需要不时启动几个线程,一种方法将如何对这些进行分组?

谢谢,亚当。

4

1 回答 1

3

完全没有优势。ThreadGroups 是为了向后兼容,但我从未见过它们被使用过。

这是 Brian Goetz(Java Concurrency in Practice - 圣经的作者)很久以前对它们的评价:

ThreadGroup 类最初旨在用于将线程集合结构化为组。然而,事实证明 ThreadGroup 并不是那么有用。最好只使用 Thread 中的等效方法。ThreadGroup 确实提供了一个在 Thread 中没有(还)存在的有用特性:uncaughtException() 方法。当线程组中的线程因为抛出未捕获的异常而退出时,将调用 ThreadGroup.uncaughtException() 方法。这使您有机会关闭系统、将消息写入日志文件或重新启动失败的服务。

线程现在有一个未处理的异常处理程序,并且这个使用线程组的单一原因不再有效。

于 2012-07-03T11:24:20.353 回答