当前位置: 首页 > 面试题库 >

按名称获取线程

郦楷
2023-03-14
问题内容

我有一个多线程应用程序,并且通过setName()属性为每个线程分配了唯一的名称。现在,我希望功能可以使用相应的名称直接访问线程。

类似于以下功能的东西:

public Thread getThreadByName(String threadName) {
    Thread __tmp = null;

    Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
    Thread[] threadArray = threadSet.toArray(new Thread[threadSet.size()]);

    for (int i = 0; i < threadArray.length; i++) {
        if (threadArray[i].getName().equals(threadName))
            __tmp =  threadArray[i];
    }

    return __tmp;
}

上面的函数检查所有正在运行的线程,然后从正在运行的线程集中返回所需的线程。也许我想要的线程被中断了,那么上面的功能将无法正常工作。关于如何整合该功能的任何想法?


问题答案:

您可以使用ThreadGroup查找所有
活动
线程:

  • 获取当前线程的组
  • 通过调用ThreadGroup.getParent()直到找到一个父级为空的组来逐步处理线程组层次结构。
  • 调用ThreadGroup.enumerate()以查找系统上的所有线程。

这样做的价值完全使我逃脱了…您可能会对命名线程做什么?除非您Thread应该在什么时候实现Runnable(在开始时这是草率的编程)子类化。



 类似资料:
  • 现在,我有两个名称为和名称为的cookie。 我想让这个getter只从义务cookie中获取值。 我该怎么做?因此将数据拆分为单独的值并将其放入数组中。

  • 是否可以通过路由的名称(如控制器和它使用的操作名称)获取路由的详细信息? 我浏览了文档,它只列出了当前路由的功能,即,等。是否可以通过别名/名称获得特定路由、操作和控制器的详细信息?

  • 问题内容: 我搜寻了互联网,但找不到答案: 我正在使用for循环创建36个名为a1,a2等的按钮,并同时为每个按钮分配一个唯一的操作命令。 稍后,我想从actionPerformed(ActionEvent e)方法中获取按钮的名称。 我可以使ActionCommand非常容易,但是我也需要按钮的名称。 任何帮助,不胜感激! 编辑: 这是我正在使用的代码: 这为6x6网格提供了36个按钮,分别为a

  • 问题内容: 考虑以下功能: 而这个HTML部分: 显示警报框,但显示“未定义”。 问题答案: 您看到该错误的原因是因为返回了一个元素。并且a 元素没有属性。 使用此代替:

  • 问题内容: 我正在将一些数据写入Excel文件,但是我不知道如何调整代码以便能够控制要写入的工作表: 而不是,我该怎么说(这是VBA语法的样子……)? 问题答案: 你应该用 PS:您应该检查工作表中是否包含工作表名称

  • 问题内容: 我正在尝试找到一种通过名称访问模块变量的方法,但尚未找到任何东西。我现在使用的是: 但是它很模糊并且破坏了IDE错误检查(即,在eclipse / pydev import中,myModule被标记为未使用,而在上一行中则需要)。有什么更好的方法吗?可能是我不知道的模块内置功能? 问题答案: