如果兩個不同的 程序試圖同時寫入同一個 文件會發生什麼?如果兩個不同的程序試圖同時寫入同一個文件,會發生什麼?
將其中一個程序遇到 文件鎖定錯誤?
程序應如何設計爲 處理這種情況?
回答
當第二應用(或線程)嘗試打開該文件寫它會拋出IO異常..簡單..
您可以首先將您的文件打開代碼放在try catch塊中。如果它成功,那麼您編寫..如果沒有,則提示用戶或在一段時間後再次嘗試。或者,您可以嘗試使用「DATABASE」,其中多個應用程序可以同時修改它.. – 2011-03-21 06:45:54
使用的FileLock避免IO異常時文件正被多個線程訪問。
你能詳細點嗎?什麼是「FileLock」? – 2011-03-21 06:52:54
請通過以下鏈接http://download.oracle.com/javase/1.4.2/docs/api/java/nio/channels/FileLock.html – developer 2011-03-21 07:52:54
它是.NET,而不是Java。 – 2011-03-21 08:14:07
說你有用戶A和用戶B,你可以做的是,讓他們兩人修改內容,但是會有一個小的時間差異,但是你希望它是「同時」的,所以檢查哪個用戶有首先「提交」更改,保存這些更改並提示智能郵件給下一個用戶說「文件已更新,檢查更改之前......等等等等」。
- 1. 當我讀/寫同一個文件時會發生什麼?
- 2. 如果2臺或更多服務器試圖同時寫入同一文件,NFS會發生什麼情況?
- 3. php如果兩個人同時追加會發生什麼?
- 4. 如果兩個人同時提交編輯,會發生什麼
- 5. 2個線程寫入同一個對象時會發生什麼?
- 6. 從不同線程同時寫入套接字時會發生什麼?
- 7. 如何從兩個程序同時寫入單個xml文件?
- 8. 如果2個或更多人試圖同時更新同一個MySQL表,會發生什麼情況?
- 9. 多線程寫入同一文件時會發生什麼負面影響?
- 10. 如果兩個進程訪問同一個文件時沒有鎖,會發生什麼?
- 11. 爲什麼這兩個程序會導致不同的結果?
- 12. 如果兩個ObjC類別重寫相同的方法會發生什麼?
- 13. 如果同時通過2個不同進程在同一文件上調用寫入系統調用,會發生什麼情況
- 14. 如果我將相同的文件提交到兩個不同的存儲庫,會發生什麼
- 15. 當你同時觸摸兩個按鈕時會發生什麼
- 16. 這兩個實現爲什麼會產生不同的結果?
- 17. ofstream不會向兩個不同的文件寫入不同的數據
- 18. 從同一個文件(PHP)中寫入兩個會話
- 19. 同時將一個值寫入兩個文本文件
- 20. PHP - 如果我得到兩個相同的會話ID會發生什麼?
- 21. 爲什麼相同的代碼會生成兩個不同的圖表?
- 22. 將相同的模板寫入兩個不同的文件,更改一個值
- 23. 如何從同一個python程序寫入兩個單獨的日誌文件?
- 24. 兩個用戶同時寫入一個文件? (PHP/file_put_contents)
- 25. 兩個進程打開同一個文件進行寫入
- 26. 兩個同時發生的Python循環有一個結果
- 27. 在C++中,如果兩個不同的函數聲明相同的靜態變量會發生什麼?
- 28. 停止我的應用程序的兩個實例同時寫入同一個文件夾
- 29. 當Spark讀取架構不同的多個parquet文件時會發生什麼?
- 30. 兩個log4j文件夾可以寫入同一個文件嗎?
這是操作系統特定的。你關心哪一個? – philant 2011-03-21 06:44:27
@philippe:我只關心基於Microsoft Windows的操作系統。 – 2011-03-21 06:47:16