日期:2014-05-19  浏览次数:20813 次

关于用FileStream的异步写的方法多线程写日志的问题。 是否能保证写入的顺序?
项目中需要用到多线程写日志。
我想用FileStream的异步写的方法。
在回调方法中用Lock同步,
这样调用端可以马上返回,不用等到写完再返回。

这样是否能保证写入的先后顺序?

请问这样还会有什么问题么?

------解决方案--------------------
写入顺序是不能保证的,因为先入顺序取决于线程获得file lock的次序,这个是不确定的。不过一般来说写操作不会有大的并发,而且一般写日志能够在短时间能完成。比如一个写操作要10秒中,在10秒里先后有3个线程访问。10秒内都是阻塞的。但是之后谁先获取锁是不确定的。不过一般写操作很快的,顺序问题可以忽略的。