多进程同时访问一个文件的问题
现在有个需求,需要控制多进程访问文件的问题,所谓多进程可能并不是只有java的程序会访问,期间可能还有C#的程序同时也要访问这个文件。
现在我在程序里会先调用canWrite()后再去执行文件读写。但是的问题是当还有另一个进程(比如C#写的程序)同时访问时会有问题,在很小的几率下可能会发生调用canWrite()时是可以写的,但是在下面创建文本流的一瞬间文件变为不能写了。
我不知道会不会发生类似的事情?大家如何解决这个问题?原本是想创建一个签出文件,但是这样效率太低,因为java程序每隔1秒就有可能写文件。
------解决方案--------------------没什么好办法,按照你分析的很少可能
------解决方案--------------------像linux的log服务那样,做一个服务,专门用来写这个文件。
c#和java都调用这个服务对这个文件进行操作
------解决方案--------------------WebService corba可以解决
------解决方案--------------------
------解决方案--------------------我觉得做为一个服务单独写文件比较好。java和C#都直接调用这个服务。
------解决方案--------------------
------解决方案--------------------其实这个问题只要你做好异常机制, 或者给出生成失败的后续等待操作就ok了
如果一个文件正在被其他文件写,第二个程序是不能写入的,就会有相应的错误信息
------解决方案--------------------还有就是写个通用的接口如:webService等等, 所有的外界调用全部调用这个接口去。。。