同步ArrayList并等待

时间:2014-11-21 12:04:03

标签: java multithreading arraylist

我正在同步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;   

    }

1 个答案:

答案 0 :(得分:1)

有两种方法可以明确同步:

Using Collections.synchronizedList() method
Using thread-safe variant of ArrayList: CopyOnWriteArrayList