想請問各位大大像FlashGet、FireFox的下載那樣「有一大堆連結準備下載,卻維持同時
只下載三個東西」要怎麼寫啊?新增執行緒嗎?
這是我原本的想法:↓
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void method(String[] 網址 ){
...
for(int i=0; i <= 網址[].length ; i++){
String DD = 網址[i];
while(true){
if(Thread.activeCount() <= 3 ){ //執行緒是否小於三個
Thread t = new Thread(new 下載(DD) ); //新增執行緒
t.start();
break;
}
}
}
}
class 下載 implements Runnable {
下載(String D){...} //建構子
public void run(){...} //方法run()
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
只是這樣寫的話,while迴圈一直執行判斷"執行緒有幾個"好像會很耗資源。
還是其實那些下載軟體是幾個網址連結就新增幾個執行緒,讓系統依負荷自己挑選要執行
哪幾個的?
可不可以請各位大大們解說一下概念~ 謝謝m(_ _)m
ps.JavaWorld是不是倒了@@?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.165.194.94
→
08/10 09:38, , 1F
08/10 09:38, 1F
推
08/10 09:39, , 2F
08/10 09:39, 2F
→
08/10 09:41, , 3F
08/10 09:41, 3F
推
08/10 09:46, , 4F
08/10 09:46, 4F
推
08/10 11:11, , 5F
08/10 11:11, 5F
→
08/10 11:14, , 6F
08/10 11:14, 6F
→
08/10 11:18, , 7F
08/10 11:18, 7F
→
08/10 11:21, , 8F
08/10 11:21, 8F
→
08/10 19:30, , 9F
08/10 19:30, 9F
→
08/10 19:33, , 10F
08/10 19:33, 10F
推
08/11 23:14, , 11F
08/11 23:14, 11F
推
08/12 10:41, , 12F
08/12 10:41, 12F
→
08/13 10:52, , 13F
08/13 10:52, 13F