首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

多进程同时访问一个文件的有关问题

2012-08-09 
多进程同时访问一个文件的问题现在有个需求,需要控制多进程访问文件的问题,所谓多进程可能并不是只有java

多进程同时访问一个文件的问题
现在有个需求,需要控制多进程访问文件的问题,所谓多进程可能并不是只有java的程序会访问,期间可能还有C#的程序同时也要访问这个文件。

现在我在程序里会先调用canWrite()后再去执行文件读写。但是的问题是当还有另一个进程(比如C#写的程序)同时访问时会有问题,在很小的几率下可能会发生调用canWrite()时是可以写的,但是在下面创建文本流的一瞬间文件变为不能写了。

我不知道会不会发生类似的事情?大家如何解决这个问题?原本是想创建一个签出文件,但是这样效率太低,因为java程序每隔1秒就有可能写文件。

[解决办法]
没什么好办法,按照你分析的很少可能
[解决办法]
像linux的log服务那样,做一个服务,专门用来写这个文件。
c#和java都调用这个服务对这个文件进行操作
[解决办法]
WebService corba可以解决
[解决办法]

探讨

我换了一种思路来解决这个问题具体访问:
http://blog.csdn.net/wsxqaz/article/details/7194094

[解决办法]
我觉得做为一个服务单独写文件比较好。java和C#都直接调用这个服务。
[解决办法]
探讨

当然如果为了解决同步其实可以写个循环来不断的访问文件是否已经存在(被签入)。很多方法

[解决办法]
其实这个问题只要你做好异常机制, 或者给出生成失败的后续等待操作就ok了
如果一个文件正在被其他文件写,第二个程序是不能写入的,就会有相应的错误信息
[解决办法]
还有就是写个通用的接口如:webService等等, 所有的外界调用全部调用这个接口去。。。

热点排行