java 读写同一个文件_多个Java进程可以同时读取同一个文件吗?

是否可以同时从两个或多个不同的进程读取同一个文件?

我想在Java应用程序中做这样的事情:

final File f = new File("read-only-file");

final FileInputStream in = new FileInputStream(f);

int b;

while((b = in.read()) != null) {

//process b

Thread.sleep(10); //several read processes would really happen at the same time

}

没有应用程序会写入文件,但是多个线程/应用程序需要同时执行上面的代码.代码是否正常或在这种情况下是否需要使用任何特殊机制?

该解决方案也应该是独立于平台的,并且必须在类似Linux的系统上运行.

解决方法:

Can multiple Java processes read the same file at the same time?

当然可以;最后,无论如何,操作系统的作用是确保每个进程/线程按照自己的进度读取,因此您不必担心它.

当然,您可能希望在不同的线程之间共享尽可能多的资源,但肯定不是I / O流;当我们使用时,如果您使用Java 7或更高版本,则使用新文件API(这是2014年;自Java 7开始以来已经有3年了);与java.nio.file相比,File是一个非常低劣的API(事实上,与一般的大多数编程语言的文件操作API相比).

标签:java,file,io,linux,concurrency

来源: https://codeday.me/bug/20190624/1276700.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值