1
我正在開發多線程應用程序,其中多個線程正在操作項目集合(列表類型)。正在執行的操作包括添加,刪除項目,循環遍歷項目和執行計算。我目前使用鎖定進行同步,但是多個共享集合和線程變得有點複雜。你會建議什麼樣的模式來有效地在線程之間共享數據,避免競爭條件並使代碼更容易維護?用於同步線程間集合的模式
我正在開發多線程應用程序,其中多個線程正在操作項目集合(列表類型)。正在執行的操作包括添加,刪除項目,循環遍歷項目和執行計算。我目前使用鎖定進行同步,但是多個共享集合和線程變得有點複雜。你會建議什麼樣的模式來有效地在線程之間共享數據,避免競爭條件並使代碼更容易維護?用於同步線程間集合的模式
那麼,正確獲取多線程代碼是棘手的。
我會建議看一下System.Collections.Concurrent
中的集合,只要您不需要執行需要事務的操作,就可以使用多個集合的行爲。
你必須閱讀這個! http://www.albahari.com/threading/線程的一個很好的資源 – Yahya 2013-03-22 12:11:06
重複? http://stackoverflow.com/questions/2980283/thread-safe-collections-in-net – Vizu 2013-03-22 12:11:49