日期:2014-05-17  浏览次数:20346 次

多线程 读写文本文件 如何同步 谢谢!
现有一线程读文件,由于文件是保存发生错误的列表文件,当服务器挂掉时,列表会比较大,读文件的时候会比较耗时

同时另一线程继续跑着相关的应用,但服务器挂掉的情况,应用中的数据会保存到列表文件中,即要写入列表文件,这样很容易和前一线程读文件会有所冲突,出现“另一个进程使用,因此该进程无法访问文件”异常

请问如何保持互斥或同步,谢谢!

------解决方案--------------------
不需同步,写入时,只是list.add的动作,读线程,如果list有值,每次取List[0],和写不冲突
------解决方案--------------------
可以考虑一下读写锁
http://xxinside.blogbus.com/logs/47780781.html
------解决方案--------------------
线程中对象加锁,如果出现错误,立即释放这个读或则写的列表对象
------解决方案--------------------
要不然就把你的那个错误信息不要记录到文件了,记录到数据库的一张表中,这样的话,定时的删除,加索引,检索的速度都是很好的。而且写入写可以的。
------解决方案--------------------
不多
@20120222 22:00:52
------解决方案--------------------
不在两个线程直接操作文件。
建一个线程管理文件读取,通过管道为其他线程提供读写服务