像这样将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();
...

最佳答案

是的,因为没有(架构上的)保证,因此Runnable始终具有相同的线程。如果将其放入执行程序中,您的代码将产生一些错误。当您的代码在特殊情况下运行时,您将破坏线程与Runnable之间的分隔,并且创建该分隔是有充分理由的。

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

关于java - Runnable类中的线程成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20311909/

10-11 09:23
查看更多