关于synchronized(locker)的问题
来源:10-2 并发客户端BUG修复与性能优化-1
慕尼黑3917127
2019-02-17
synchronized (locker) {
locker.set(true);
try {
xxxxxx...
} finally {
locker.set(false);
locker.notify();
}
}
synchronized (locker) {
if (locker.get()) {
try {
locker.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
关于此处的锁定,由于两个都被synchronized (locker)包裹,应该是同步的呀,那么下面这个wait的片段 locker.get()什么时候会是true的情况,好像都不会有这种时候呀
写回答
1回答
-
Qiujuer
2019-02-17
这个是在select方法轮训中会导致设置为true的情况。
具体表现为,进入轮训时会设置为true,完成后设置为false,与这边互斥。
132019-11-07
相似问题