我有一个multithreaded
应用程序,我通过setName()
属性为每个线程分配一个唯一的名称。
现在,我希望功能能够直接使用相应的名称来访问线程以阻止它。
我怎么能得到它?
答案 0 :(得分:1)
要查找使用此主题的主题:https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/ThreadUtils.html(https://github.com/apache/commons-lang/blob/master/src/main/java/org/apache/commons/lang3/ThreadUtils.java)
但是这只给你一个线程的引用,你不能简单地终止它(不推荐使用stop())。根据线程的作用,可能会中断它?
答案 1 :(得分:0)
答案 2 :(得分:0)
如果您确实想要按名称访问某个帖子并且您没有可以使用的引用,则可以使用ThreadGroup
并搜索由组和线程组成的树。正确的名字。
来自JavaDoc:
线程组表示一组线程。此外,线程组还可以包括其他线程组。线程组形成一个树,其中除初始线程组之外的每个线程组都有一个父节点。
因此,您应该能够调用Thread.currentThread().getThreadGroup()
,使用getParent()
查找初始/根组,使用enumerate(Thread[])
列出所有活动线程并搜索线程。