如果我有一個數組可以/將在任何給定的時間點被多個線程訪問,究竟是什麼導致它是非線程安全的,以及確保採取哪些步驟來確保在大多數情況下該數組將是線程安全的?線程安全訪問數組和線程安全訪問
我已經在互聯網上發現了很多東西,並且幾乎沒有發現關於這個主題的任何信息,似乎一切都是特定的場景(例如,這個數組是通過這兩個線程進行線程安全訪問的,在和之上)。我真的很想有人能夠回答我列在頂部的問題,或者如果有人能夠指出一個解釋所述項目的好文件。
編輯: 在環視MSDN後,我找到了ArrayList類。當您使用同步方法時,它會爲給定列表返回一個線程安全的封裝器。在列表中設置數據時(即list1 [someNumber] = anotherNumber;)包裝器會自動處理鎖定列表,還是需要鎖定它?
什麼 「線程安全」 的真正含義取決於具體情況。你想防止什麼樣的「問題」? – harold
Albahari關於c#中線程相關問題的着作很好:http://www.albahari.com/threading/part2.aspx#_Thread_Safety – hatchet