首先,不要讀一下,操作一下,再寫一下.這樣不好.
其次,如果不用多線程來做,需要記錄每次讀到哪裏了,考慮到異常,重啓等情況,非常繁瑣,容易出錯
最後,希望大家用2個線程
1個是讀
1個是操作
讀了之後可以放在阻塞隊列裏面,這樣可以保證先進先出,不會串行
然後,操作的線程就去取隊列中的數據來操作.
需要用到的知識有
1,arrayblockingqueue,注意offer put 這樣可以阻塞的操作
2, randomaccessfile(file,"rw"); 因爲多個線程操作文件,注意要把文件鎖住
3, getChannel().tryLock(); 這時候利用異常,如果得不到鎖,就等一下,繼續要鎖.