[問題] synchronized 和 multi thread
大家好, 小弟對multi thread還不熟悉, 想請教一個問題
目前我有A, B兩條thread, 以及一個公用的arraylist
A thread會做以下的工作:
arraylist.remove(old_index);
...一些運算
arraylist.add(new_index, obj);
B thread則會對arraylist作get
因此A在作add前, B有機會IndexOutOfBounds
我查了synchronized修飾字,
將A的工作用synchronized包起來, 可是沒有幫助
synchronized(arraylist){
...
}
我是希望鎖住arraylist這個物件, 而不是操作這物件的Method
請問一般來說, 這種狀況如何處理較恰當?
可否給我點建議, 或是該往哪個方向去查..謝謝:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.169.177.29
推
10/04 23:02, , 1F
10/04 23:02, 1F
→
10/04 23:04, , 2F
10/04 23:04, 2F
→
10/05 00:41, , 3F
10/05 00:41, 3F
→
10/05 00:44, , 4F
10/05 00:44, 4F
→
10/05 00:46, , 5F
10/05 00:46, 5F
→
10/05 00:48, , 6F
10/05 00:48, 6F
→
10/05 00:51, , 7F
10/05 00:51, 7F
→
10/05 10:20, , 8F
10/05 10:20, 8F
→
10/05 10:22, , 9F
10/05 10:22, 9F
→
10/05 10:54, , 10F
10/05 10:54, 10F
→
10/05 10:55, , 11F
10/05 10:55, 11F
推
10/05 11:00, , 12F
10/05 11:00, 12F
→
10/06 20:54, , 13F
10/06 20:54, 13F
→
10/06 20:59, , 14F
10/06 20:59, 14F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):