gpt4 book ai didi

java - 了解 ThreadGroup 在 Java 中有用吗?

转载 作者:行者123 更新时间:2023-11-30 07:32:38 28 4
gpt4 key购买 nike

Java 编程语言使用ThreadGroup 来管理线程之间的访问权限:

A thread group represents a set of threads. In addition, a thread group can also include other thread groups. The thread groups form a tree in which every thread group except the initial thread group has a parent.

A thread is allowed to access information about its own thread group, but not to access information about its thread group's parent thread group or any other thread groups.

我想我明白了,但这有什么用吗?我想知道从调试的角度来看,揭示当前的 ThreadGroup 结构及其元素(即线程和其他 ThreadGroup)是否包含任何信息。

最佳答案

我发现它很方便,尽管它有很多问题。它可以用于提供管理内容 b/c 创建的线程将被添加到父线程的 ThreadGroup(并且可以被有效地枚举)。它可用于防止新线程生成(但未记录或预期)。

不幸的是,ThreadGroup 有很多错误,包括。销毁()方法。

简而言之,如果您不打算编写中间件,请不要打扰。如果您需要枚举应用程序中的所有线程,请使用 Thread.getAllStackTraces().keySet(),尽管该方法存在安全漏洞,但我不讨论这一部分。

编辑:我错过了调试方面:如果调试工具允许通过线程组进行 TreeView 和分组(例如 eclipse 就是这样做的),则线程组实际上可用于调试目的。如果您正确使用它,当前调试的模块/mbean/etc 中的所有线程都应该在同一组中。它可以更轻松地跟踪线程泄漏(与查看数百个其他线程相比)

关于java - 了解 ThreadGroup 在 Java 中有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6440049/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com