synchronized(...) 在带有 var=Thread.currentThread() 的代码块上
synchronized(...) on a code block with var=Thread.currentThread()
我正在阅读代码 class:
public class MultiThreadedServer implements Runnable {
// some more code
protected Thread runningThread = null;
public void run() {
synchronized(this) {
this.runningThread = Thread.currentThread();
}
// lots of code
}
}
这是什么意思?线程本身用作锁定资源的标志?完全不懂
有人知道吗?
this.runningThread = Thread.currentThread();
简单地给你一个 link 到当前线程。
这样您就不必一直调用 Thread.currentThread()
,从而节省了方法调用的开销。
嗯,protected Thread running thread = null;
中的 space 也无济于事...
this
是一个 Runnable
,而不是一个线程,因此同步 而不是 在您编写时在线程本身上完成。
这可能有点令人困惑,但非常可行,例如。该对象被多个并发线程访问。
干杯,
我正在阅读代码 class:
public class MultiThreadedServer implements Runnable {
// some more code
protected Thread runningThread = null;
public void run() {
synchronized(this) {
this.runningThread = Thread.currentThread();
}
// lots of code
}
}
这是什么意思?线程本身用作锁定资源的标志?完全不懂
有人知道吗?
this.runningThread = Thread.currentThread();
简单地给你一个 link 到当前线程。
这样您就不必一直调用 Thread.currentThread()
,从而节省了方法调用的开销。
嗯,protected Thread running thread = null;
中的 space 也无济于事...
this
是一个 Runnable
,而不是一个线程,因此同步 而不是 在您编写时在线程本身上完成。
这可能有点令人困惑,但非常可行,例如。该对象被多个并发线程访问。
干杯,