首先,不要读一下,操作一下,再写一下.这样不好.
其次,如果不用多线程来做,需要记录每次读到哪里了,考虑到异常,重启等情况,非常繁琐,容易出错
最后,希望大家用2个线程
1个是读
1个是操作
读了之后可以放在阻塞队列里面,这样可以保证先进先出,不会串行
然后,操作的线程就去取队列中的数据来操作.
需要用到的知识有
1,arrayblockingqueue,注意offer put 这样可以阻塞的操作
2, randomaccessfile(file,"rw"); 因为多个线程操作文件,注意要把文件锁住
3, getChannel().tryLock(); 这时候利用异常,如果得不到锁,就等一下,继续要锁.