现在有一个vector,一个线程往里写,一个线程往外取,现在发现频繁插入的时候,长时间取不出来,这个问题如何解决呢?

解决方案 »

  1.   

    在读写的方法前加上sychronized进行同步。这样就可以保证读写顺序了
      

  2.   

    将写入和读出分别设置为一个线程,使用同步。
      设置一个boolean型的标志量flag,当写入一个时,将flag置为ture,当读出一个时,将flag置为false,然后在写入之前,检查flag变量,若它为false,就往里写,如果为true(说明刚写入的一个,还没有读出来),则将写的线程wait(),并notify()读的线程。
      这是典型的生产消费问题,楼主可以查资料细细看看
      

  3.   

    <java how to progra>看这书
      

  4.   

    利用标志位,然后配合wait()和notify()方法
      

  5.   

    没必要两个vecotr,把读写操作同步化不就搞定了嘛,用同一个vector