我正在同步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;
}
答案 0 :(得分:1)
有两种方法可以明确同步:
Using Collections.synchronizedList() method
Using thread-safe variant of ArrayList: CopyOnWriteArrayList