- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
一 点睛 线程可以设置为守护线程,ThreadGroup 也可以设置为守护 ThreadGroup,但是若将一个 ThreadGroup 设置为 deamon,也并不会影响线程的 daemon 属性,
一 基本操作 public int activeCount():用于获取 group 中活跃的线程,这只是估计值,并不能百分百地保证数字一定正确。 public int activeGroupCoun
一 点睛 destroy 用于销毁 ThreadGroup,该方法只是针对一个没有任何 active 线程的 group 进行一次 destroy 标记,调用该方法的直接结果是在父 group 中将自
一 点睛 ThreadGroup 复制线程组的两个方法。 public int enumerate(ThreadGroup list[]) // 相对于 enumerate(list,true) pu
一 点睛 interrupt 一个 thread group 会导致该 group 中所有 active 线程全部 interrupt,也就是说该 group 中每一个线程的中断标识都被设置了。 二
1.概述 转载:线程组是什么?线程优先级如何设置? 2. 线程组(ThreadGroup) Java中用ThreadGroup来表示线程组,我们可以使用线程组对线程进行批量控制。 ThreadGrou
我知道当前使用 Executors 而不是 ThreadGroup 的做法: 处理线程的一般首选方式 从线程等中捕获异常... 但是,ThreadGroup 的固有缺陷 本身是什么(我听到了对该类的含
我有一些漂亮的样板 Java 代码,它使用 tg.getParent() 执行 while 循环来获取根线程组。它已经在四种不同的环境(一个 Windows 和三个 Linux)上运行了几个月。最近,
当我运行 pmd 检查时,我的代码出现避免线程组错误,但我不明白为什么。谁能给我解释一下吗? Timestamp currentTimestamp = new java.sql.Timestamp(C
ThreadGroup#activeCount() 的文档说:返回此线程组及其子组中 Activity 线程数量的估计值。 该计数是否包括处于 sleep 、 wait 和 join 模式的线程,还是
我正在学习多线程的概念,我试图找到数组中 Activity 线程的数量,但是 ThreadGroup.activeCount() 的方法> 仅返回零值。 这是代码: 线程对象类:- class th1
我开始为 Java 中已经存在的项目(非多线程项目)开发一些多线程平台,我需要性能增益,减少整个项目中复杂计算的时间。 我一直在使用 Executors,但我真的不知道与 ThreadGroup 或纯
Java 编程语言使用ThreadGroup 来管理线程之间的访问权限: A thread group represents a set of threads. In addition, a thre
我正在寻找最佳实践,并且正在将 PMD 应用到我的 Java EE 项目中,但一条规则表明我必须避免使用 java.lang.ThreadGroup,而我现在正在使用它。 规则说这是不安全的,我想知道
我已经为生产者和消费者实现了一个信号量类。 它工作正常,但我现在感觉我们使用 notifyAll 来通知唤醒的线程或通知所有线程。 我想知道是否有任何方法可以只通知一组特定的组:比如生产者只通知消费者
这个问题与我在 Java 并发主题中的作业有关。我的任务是生成新线程并通过给定的 concurrencyFactor 限制它们。也就是说,继续分派(dispatch)新线程,直到 Activity 线
Thread.activeCount() 和 ThreadGroup.activeCount() 有什么区别? oracle java 文档说这两种方法都会返回组(包括子组)中的估计线程数。当我得到列
我使用的是用于批处理的 ThreadPoolExecutor,但单个 JVM 上的单个线程池仅使用可用服务器的 CPU 之一。如果使用新线程池启动并行的第二个 JVM,我将使用另一个 CPU。 所以我
不使用任何令人讨厌的反射。有什么快速/简单的方法来做到这一点(无需复制和粘贴计时器代码)? 最佳答案 不要使用定时器,尝试ScheduledExecutorService反而。合并调用 Executo
java.lang.Thread 类有一个构造函数,它仅接受一个字符串参数作为线程名称。它有一个仅接受 Runnable 目标的构造函数。但它也有一个默认构造函数。这意味着名称或可运行目标不是强制性的
我是一名优秀的程序员,十分优秀!