2011-09-26 82 views
1

我正在編寫一個Java應用程序,該應用程序訪問作爲共享資源存儲在Windows服務器中的配置文件。該應用程序被認爲約有500名員工使用,所以它讓我想到併發性。併發訪問共享資源

與實現相關,我通過JCIFS庫訪問文件,然後使用inputStream讀取並處理它。我想虛擬機與這個和應用程序代碼無關,所以我指出了操作系統,在這種情況下,Windows。

我不知道哪裏必須如何處理這個問題,或者即使我不得不這樣做。

另一方面,我們正在討論一個遠程文件,但是如果文件位於我們的文件系統中會發生什麼?在這種情況下,VM有話要說不是嗎?可以通過文件打開多少個不同的輸入流?並輸出流?

我知道這些都不是具體問題,所以回答它們一定很難。但任何幫助,評論或建議將不勝感激。

在此先感謝!

回答

1

另一方面,我們談論的是一個遠程文件,但是如果文件位於我們的文件系統中會發生什麼?

它仍然是一個InputStream。

在這種情況下,VM有話要說不是嗎?

它可以,如果你想,但一般不會。

可以在文件上打開多少個不同的輸入流?

受操作系統限制,通常爲數千個。

和輸出流?

相同。但是如果你用一個以上的進程寫入一個文件,結果可能會很糟糕,但是你更可能從一個程序中獲得輸出。 (但是你不知道沒有重新閱讀它)

0

當你的應用程序正在使用它時,文件將被寫入嗎?如果不是,那麼我無法想象它是一個問題。想想同一個文件可以同時打開多個編輯器 - 沒有傷害沒有犯規,直到有人進行更改並寫入。