java - 如何获取正在运行的Java线程的属性?

标签 java multithreading

我有该代码:

主类:

public class myTest {

public static void main(String[] args) {

   try {
        Thread t1 = new Thread(new myThreadClass("thread 1"), "thread 1");
        t1.start();
    } catch (UnknownHostException ex) {
        Logger.getLogger(glownyTest.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(glownyTest.class.getName()).log(Level.SEVERE, null, ex);
    }  

 }
}

我的线程类

public class myThreadClass extends Thread {

private HashSet<String> texts = new HashSet<String>();

public myThreadClass(String id) throws UnknownHostException, IOException {}

@Override
public void run() {
     ... collecting Strings into my hashSet ....
}

public HashSet<String> getTexts() {
    return texts;
}
}

我尝试过打电话

t1.getTexts();

在启动线程后在我的主类中,但它不起作用 - 我想从我的主类级别访问文本 hashSet。如何实现?

最佳答案

如果您尝试访问属于您的类型 myThreadClass 的方法,那么您需要确保将该变量声明为该类型的实例。

像这样:

myThreadClass t1 = new myThreadClass("thread 1");

您可能会遇到一些问题...例如需要加入Thread以确保它完成填充HashSet

关于java - 如何获取正在运行的Java线程的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16732553/

相关文章:

c# - Interlocked.Decrement(i) 适合 Parallel.ForEach() 吗?

c# - 长时间停顿的并行任务

java - 将 TIMESTAMPWITH TIME ZONE 类型设置为 JDBC 可调用语句

java - Fat Java 客户端需要通过 http/https 与 Web 服务器进行双向通信 channel

尽管使用同步块(synchronized block),Java HashMap ConcurrentModification 异常

c# - 为单个任务创建多个线程

python - 'self' 从哪里来?将成员函数作为 threading.Thread 的目标

java - 删除实体会自动更新它们的关系吗?

java - Sonar :sonar work?如何

java - CrudRepository 按一对多关系过滤