返回一個列表,我發現這個在dos.oracle.com爲什麼我需要同步由Collections.synchronizedList
公共靜態列表synchronizedList(名單列表)
返回的同步(線程安全)列表支持指定的 列表。爲了保證串行訪問,通過返回列表完成對後備列表訪問的所有訪問是至關重要的。 當務之急是用戶迭代它時,返回 名單上手動同步:
List list = Collections.synchronizedList(new ArrayList());
...
synchronized(list) {
Iterator i = list.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
我的問題是:爲什麼我必須同步列表進行迭代,如果Collections.synchronizedList();
應該返回已經同步列表?
我只是在兩個線程訪問列表:一個線程只是添加和另一個線程獲取和刪除。你推薦哪些其他課程用於這種情況?
感謝您的閱讀。
我wouldnt使用'Collections.synchronizedList()'。在自己的代碼中自己同步可能會更好 – JIV