如何获取运行Java线程的属性?

如何获取运行Java线程的属性?,java,multithreading,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(g

我有这样的密码:

主要类别:

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;
}
}

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

不要为程序逻辑滥用
线程类。您应该构建自定义的
Runnable
实现,并将其传递到
线程的构造函数中。这样,线程控制和程序逻辑之间的关注点分离将更加明显。

不要滥用程序逻辑的
线程类。您应该构建自定义的
Runnable
实现,并将其传递到
线程的构造函数中。这样,线程控制和程序逻辑之间的关注点分离将更加明显。

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

像这样:

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

您可能会遇到一些问题。。。就像需要
加入
线程
以确保它完成填充
哈希集
如果您试图访问属于您的类型
myThreadClass
的方法,那么您需要确保将变量声明为该类型的实例

像这样:

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

您可能会遇到一些问题。。。像需要
加入
线程
以确保它完成对
哈希集的填充一样

您可以创建myThreadClass的引用

myThreadClass t1

将引用转换为myThreadClass,如

((myThreadClass )t1).getTexts();

这会有用的

您可以创建myThreadClass的引用

myThreadClass t1
myThreadClass t1 = new myThreadClass("thread 1");
t1.start()
try{
t1.join();
t1.getTexts();
}catch(InterruptedException x){
 ....
}

将引用转换为myThreadClass,如

((myThreadClass )t1).getTexts();
这会有用的

myThreadClass t1 = new myThreadClass("thread 1");
t1.start()
try{
t1.join();
t1.getTexts();
}catch(InterruptedException x){
 ....
}
通常类名的第一个字母是大写


通常类名的第一个字母是大写

你所说的
它不工作是什么意思
?你所说的“属性”是什么意思?你可以在哪个构造函数中传递
线程
实例作为第一个参数?您的类
myThreadClass
正在扩展线程,是否改为实现
Runnable
?如何填写
文本
?当您访问它时,它可能是空的,您需要等待,直到有东西在那里,或者在循环中轮询它…嗯,当我刚刚执行myThreadClass t2=new myThreadClass()…-我可以调用我的函数,就是这样。:)请提供可编译/可运行的代码示例
t1
属于
Thread
类型,它不知道
Text
,并且
MyThreadClasS
没有默认构造函数。您所说的
不工作是什么意思?
?您所说的“属性”是什么意思?什么构造函数可以将
Thread
实例作为第一个参数传递?您的类
myThreadClass
正在扩展线程,是否改为实现
Runnable
?如何填写
文本
?当您访问它时,它可能是空的,您需要等待,直到有东西在那里,或者在循环中轮询它…嗯,当我刚刚执行myThreadClass t2=new myThreadClass()…-我可以调用我的函数,就是这样。:)请提供可编译/可运行的代码示例
t1
属于
Thread
类型,不知道
文本
MyThreadClasS
没有默认构造函数。