我在线程 1 中有以下代码:
synchronized (queues.get(currentQueue)) { //line 1
queues.get(currentQueue).add(networkEvent); //line 2
}
以及线程2中的以下内容:
synchronized (queues.get(currentQueue)) {
if (queues.get(currentQueue).size() > 10) {
currentQueue = 1;
}
}
现在我的问题是:currentQueue 变量当前的值为 0。当线程 2 将 currentQueue 的值更改为 1 并且线程 1 在第 1 行等待(因为同步)时,线程 1 是否会在行中使用更新后的 currentQueue 值2 在线程 2 完成后(这就是我想要的)。