coc*_*two 6 java multithreading synchronization locking
这里的第一个问题:在Java中它是一个非常短暂但基本的东西,我不知道......
在下面的例子中,该run()
方法是否以某种方式执行了somemethod()
获取的锁?
public synchronized void somemethod() {
Thread t = new Thread( new Runnable() {
void run() {
... <-- is a lock held here ?
}
}
t.start();
...
(lengthy stuff performed here, keeping the lock held)
...
}
Run Code Online (Sandbox Code Playgroud)
Xr.*_*Xr. 11
否.run()
从同步方面开始.它没有任何锁定.如果确实如此,您将遇到死锁或者违反规范,该规范声明在任何给定时间只有一个线程可以锁定对象.
如果run()
要somemethod()
再次调用同一个对象,则必须等待somemethod()
创建它的调用首先完成.
归档时间: |
|
查看次数: |
878 次 |
最近记录: |