如果我正在等待类似的情况(请注意:current
是AtomicInteger
,而target
是int
):
while (current.get() < target) {
try {
synchronized (current) {
current.wait();
}
}
catch (InterruptedException ie) {}
}
那么同步的对象应该放在里面(如上所述)还是外面(像这样)?
synchronized (current) {
while (current.get() < target) {
try {
current.wait();
}
catch (InterruptedException ie) {}
}
}
我的问题是,以上两段代码之间的实用/功能区别是什么?何时应该在另一段代码上使用?
编辑:当另一个线程执行以下操作时,退出循环
if (current.incrementAndGet() >= target) {
synchronized (current) {
current.notify();
}
}
答案 0 :(得分:0)