我正在阅读这个类的代码:
public class MultiThreadedServer implements Runnable {
// some more code
protected Thread runningThread = null;
public void run() {
synchronized(this) {
this.runningThread = Thread.currentThread();
}
// lots of code
}
}
这是什么意思?线程本身用作锁定资源的标志?我根本没有得到它。
有谁知道?
答案 0 :(得分:2)
this
是一个Runnable
,而不是一个线程,因此在您编写时,同步是不在线程本身上完成的。
这可能有些令人困惑,但如果例如,则非常可行。该对象由几个并发线程访问。
干杯,
答案 1 :(得分:1)
this.runningThread = Thread.currentThread();
只需为您提供当前主题的链接。
这样您就不必一直调用Thread.currentThread()
,从而节省了方法调用开销。
而且,protected Thread running thread = null;
中的空格也无济于事......