[英]Why do i have to synchronized an ArrayList of Threads?
所以我需要創建一個線程的ArrayList但根據
看來我需要使用synced關鍵字,然后我的問題是:
如果即時消息僅在主線程上調用此函數,為什么我必須使用synced關鍵字? 沒有其他線程可能會做同樣的事情嗎?
ArrayList<Thread> t = new ArrayList<Thread>();
for(int i=0;i<love.size();i++){
BTConnection cbtc = love.get(i).btc;
if(cbtc!=null){
Communicate temp = new Communicate(cbtc);
Thread ttemp = new Thread(temp);
ttemp.start();
t.add(ttemp);
}
}
此外,如果在代碼下面,我使用:
for(int i=0;i<t.size();i++){
t.get(i).join();
}
for循環會在第ith個線程返回之前停止,然后繼續等待ith + 1嗎?
如果只有一個線程向其中添加值/從中讀取值,我看不出您為什么需要同步線程列表的任何原因。 至於第二部分,您是對的, join
-call將阻塞直到第i
個線程完成,然后再等待下一個線程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.