2014-11-03 19 views
0

我在服務器中有一個.txt文件,用於寫入大量數據,然後在用戶每次登錄系統時讀取數據。服務器上的許多用戶使用的一個txt文件

我的問題是這樣的:

將會使用該系統的用戶總數約爲5000對他們合適的時間。 我只是擔心同時關閉,打開,讀取和寫入同一個文件和 多個用戶。你能否建議,如果它是安全的,它會工作。

+0

爲什麼不簡單地使用DBMS? – 2014-11-03 15:54:45

+0

定義安全。定義工作。此外,什麼@DavidePastore - 爲什麼不使用數據庫?它們專爲併發而設計。 – 2014-11-03 15:56:22

回答

1

您擔心的問題稱爲競爭條件。併發控制是控制對資源的併發訪問的東西。

避免競爭條件的最簡單方法是使用互斥鎖。這種方式一次只能有一個人訪問它。請注意,您不能編寫自己的鎖定系統,因爲它仍然存在爭用情況。互斥體必須是該語言的一部分。 鎖的問題是其他人必須等待訪問。

最好的方法是按照建議使用數據庫,並讓它處理併發。

+0

'請注意,你不能編寫自己的鎖系統,因爲它仍然存在競爭條件 - - 什麼?實際上,您可以使用PHP控制對文件的併發訪問。但它確實不可取。你的回答聽起來好像不可能,實際上 - 這是事實。 – 2014-11-03 16:19:06

+0

從我記得你需要的原子操作能夠鎖定一些相互排斥的東西,並試圖自己寫,你仍然容易出現競爭條件。但我可能是錯的。 – 2014-11-03 16:30:15

+0

PHP兼顧併發環境,並且可以在使用文件時獲得獨佔鎖。由於我無法確切知道您可能會出現哪種競爭狀況,因此我無法確定您是否有正確或錯誤的內容。然而,在這個例子中 - 你可以在任何時候寫入1個數據,你可以獲得排他鎖。但重要的是使用你建議的數據庫,這就是爲什麼我會+1這個答案。 – 2014-11-03 18:36:20

相關問題