关于ThreadGroup的疑问,请老师解答,谢谢

nemesis_ 2014-01-09 06:28:01
api文档里这样描述的:
线程组表示一个线程的集合。此外,线程组也可以包含其他线程组。线程组构成一棵树,在树中,除了初始线程组外,每个线程组都有一个父线程组。

允许线程访问有关自己的线程组的信息,但是不允许它访问有关其线程组的父线程组或其他任何线程组的信息。



最后这句话“但是不允许它访问有关其线程组的父线程组或其他任何线程组的信息”如何理解?我试了一下,不同线程组的线程之间,貌似没有什么不能访问的呀,老师们能否给个例子演示下,谢谢。
...全文
109 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolbamboo2008 2014-01-10
  • 打赏
  • 举报
回复
线程间通信是个很大的课题呢
nemesis_ 2014-01-10
  • 打赏
  • 举报
回复
引用 1 楼 remember1989 的回复:
线程之间实际上是相互独立的。为了保持系统的处理效率,线程之间其实并没有所谓父子关系,你无法从一个“子”线程找到启动它的“父”线程。但是为了在调试程序的时候更清楚的了解线程之间的调用,Java 提供了 ThreadGroup 这样一个结构。关于 ThreadGroup 我不多说了因为你自己有文档可参考,不过你应该也注意到了 ThreadGroup 是一个“向下引用”的结构,只能从上往下遍历,不能从下往上回溯。这样设计的原因,是为了防止“上级”线程被“下级”引用而无法有效的被 GC 回收。 相关参考
线程之间其实并没有所谓父子关系,这个能理解,一个线程是不知道哪个线程把它启动的,除非人为把这个“父线程”的信息传递进来。 ThreadGroup不能从下往上回溯是什么意思,我感觉正好相反啊,它不是可以getParent()吗,但没有getChildren()。 还有文档中那句“允许线程访问有关自己的线程组的信息,但是不允许它访问有关其线程组的父线程组或其他任何线程组的信息”,还是不知道什么意思?
remember1989 2014-01-10
  • 打赏
  • 举报
回复
线程之间实际上是相互独立的。为了保持系统的处理效率,线程之间其实并没有所谓父子关系,你无法从一个“子”线程找到启动它的“父”线程。但是为了在调试程序的时候更清楚的了解线程之间的调用,Java 提供了 ThreadGroup 这样一个结构。关于 ThreadGroup 我不多说了因为你自己有文档可参考,不过你应该也注意到了 ThreadGroup 是一个“向下引用”的结构,只能从上往下遍历,不能从下往上回溯。这样设计的原因,是为了防止“上级”线程被“下级”引用而无法有效的被 GC 回收。 相关参考

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧