[英]Java accessing a file among threads at the same time
我對Java文件鎖有些困惑。
這是我的情況。
而且,我的目標很明確,沒有線程並行寫入文件。 始終允許一個線程寫入文件。
我的問題是
如果FileOutputStream.write()是線程安全的,則我不必在代碼中放入任何並發機制,因為write()處的代碼將阻塞,直到釋放鎖定的文件為止。 但是,當線程打開文件時,我的程序似乎不會阻塞(我不確定)
如果FileOutputStream.write()不是線程安全的,那么我將不得不編寫其他代碼以使一次只能由線程訪問的文件。 因此,我使用FileChannel.lock()這樣做。 但是,與JDK文檔不同,它不會阻止而是拋出OverlappingFileLockException。
非常感謝您的明確建議。
它不是線程安全的,您需要以編程方式確保安全。 假設您的應用程序沒有主要性能要求,只需將相關代碼放在同步塊中即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.