簡體   English   中英

多個Java進程可以同時讀取同一個文件嗎?

[英]Can multiple Java processes read the same file at the same time?

是否可以同時從兩個或多個不同的進程讀取同一個文件?

我想在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的系統上運行。

多個Java進程可以同時讀取同一個文件嗎?

當然可以; 最后,無論如何,操作系統的作用是確保每個進程/線程按照自己的進度讀取,因此您不必擔心它。

當然,您可能希望在不同的線程之間共享盡可能多的資源,但肯定不是I / O流; 當我們使用時,如果您使用Java 7或更高版本,則使用新文件API(這是2014年;自Java 7開始以來已經有3年了); 與java.nio.file相比, File是一個非常低劣的API(事實上,與一般的大多數編程語言的文件操作API相比)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM