【发布时间】:2014-11-21 12:04:03
【问题描述】:
我正在同步 2 个线程使用的 ArrayList。通知和等待模式。线程通知但 arrayList 包含旧值虽然另一个线程打印新值。
Th1:
synchronized( pairsBarBuffers ) {
try {
pairsBarBuffers.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Th2:
synchronized (pairs15MBarBuffers) {
if( countSamples == 0 ){
return;
}
updateBarBuffer( pairs15MBarBuffers , countSamples );
pairs15MBarBuffers.notify();
countSamples = 0;
}
【问题讨论】:
-
您的代码示例没有任何意义。似乎使用了两个不同的列表?请发布一个可编译的示例来演示该问题(请参阅stackoverflow.com/help/mcve)。
-
我无法发布所有代码,它很大。基本上我传递相同的数组(引用)只是每个线程中的名称不同。
-
您阅读我提供的链接了吗?如果你有,你会意识到我并没有要求你提供所有的代码。
标签: java multithreading arraylist