Runnable类中的线程成员

时间:2013-12-01 12:06:10

标签: java multithreading runnable

将Thread成员放在Runnable类中是不好的做法,如下所示:

public class A implements Runnable{
    public Thread thread;
    public A(){
        thread = new Thread(this)
    }
    public void run(){
        ...
    }
}

然后像这样调用这个Runnable类:

A a = new A();
a.thread.start();
...
a.thread.join();
...

1 个答案:

答案 0 :(得分:1)

是的,因为没有(架构)保证,Runnable始终具有相同的线程。如果将其放入执行程序中,则代码将产生多个错误。虽然你的代码在你的特殊情况下工作,但是你破坏了线程和Runnable之间的分离,并且创建了一个是有充分理由的。

如果您因任何原因需要访问实际线程,最好使用Thread.currentThread()