我想知道为什么互联网上关于线程组的文档很少? 它们仍在使用,或者它们是一些陈旧的概念? 有人可以解释一下:
它们是什么。
它们的用途。
如果他们平静使用,在哪里?
提供一些真实的应用程序示例(可能是Web服务器)。
答案 0 :(得分:8)
它们用作一组线程。在一个简单的应用程序中,您只需要一个,但在更复杂的应用程序服务器中,每个应用程序都有一个是有意义的。
为什么互联网上关于线程组的文档很少?
我猜有些人认为这是一个非常简单的想法。不确定它缺少什么。
它们是否仍在使用,或者它们是陈旧的概念?
我认为大多数开发人员都不会想到线程组。但我认为它们在某些情况下很有用。我们有一个库,我们有一个自定义ThreadGroup来重置线程关联。
有人可以解释他们使用的是什么,如果仍然使用,并举一个例子。
主要在应用程序服务器中,每个服务器都有自己的线程集合,可以集中管理。如果要监视或关闭应用程序,则需要知道应用程序启动的线程。
如果你开始一个ThreadGroup中的一个线程,它创建的每个线程也将在该线程组中。如果没有此功能,您将很难为应用程序分配线程。
来自@biziclop:你如何可靠地枚举一个组中的线程?
您可以获取activeThreads的大小并枚举为this
上的ThreadGroup锁定(无论好坏)
synchronized(threadGroup) {
Thread[] threads = threadGroup.activeCount();
threadGroup.enumerate(threads);
// use threads before the lock is released or it could be wrong.
}