2014-10-06 43 views
0

所以我想檢查一個文件,如果它包含一個數據。我的程序是多線程的,所以它不會工作,因爲該文件不能同時訪問,也給出了錯誤,是否有可能加載到字符串數組,並檢查該數組是否包含我想要的文本?可以從不同的線程多次檢查一個數組

如果我在5-10個不同的線程在同一時間檢查它的重要嗎?

以及如何在同一時間從所有這些線程向文件寫入文本,但應查看是否正在使用並等待,然後再進行寫入,以免記錄錯誤。

回答

0

...是否有可能將它加載到字符串Array並檢查該數組是否包含我想要的文本?

是。將文件讀入一個字符串數組並且檢查數組中的某個字符串是否包含另一個字符串是直接編程。

如果我在同一時間從5-10個不同的線程檢查它會有什麼關係嗎?

是的,它很重要。您必須以正確的方式實施代碼,以確保它始終有效。

你的問題很難破譯,但我猜你想要在線程之間共享字符串數組,並且希望線程更新數組。在這種情況下,正確的同步是必不可少的,否則你很可能會遇到競態條件和內存異常。

如何在同一時間從所有這些線程向文件寫入文本,但應查看是否正在使用並等待,然後再寫入,以免記錄錯誤。

您需要正確同步,以便任何時候只有一個線程嘗試寫入文件。此外,您需要確保一個線程不會嘗試打開文件流,而另一個流打開該文件。 (這是最有可能您的當前錯誤的原因。對Java的Windows不會讓你這樣做......雖然Java的Linux上允許的話)。


我建議你閱讀Oracle Java教程如何編寫多線程程序。

+0

我寫在vb上。但是,謝謝,我決定編輯我的第一個代碼,爲每個代碼分配合適的ID,併爲此單獨維護數據文件。 – kks21199 2014-10-06 04:30:42

相關問題