【发布时间】:2015-01-07 20:34:33
【问题描述】:
考虑以下类。
public class Counter{
private Lock lock = new Lock();
private int count = 0;
public int inc(){
lock.lock();
int newCount = ++count;
lock.unlock();
return newCount;
}
public int incBy2() {
syncronized(this){
count+=2;
return count;
}
}
现在线程 T1 调用 inc() 方法,而 T2 调用 incBy2()。这里有比赛条件吗?
还是T2会锁定this,从而阻止inc方法调用lock.lock()?
【问题讨论】:
标签: java multithreading locking synchronized locks