像这样将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/