我是線程新手,所以我想了解當您在循環中創建一堆Thread
時出現的幕後情況,以及這樣做的意義/更好的方法。在循環上創建線程
下面是一個例子:
for (Page page : book) {
Thread t = new Thread(new Runnable() {
public void run() {
//http request to get page and put into concurrent data structure
}
});
t.start();
threads.add(t);
}
//wait for threads
正如你很可能會看到,在我的具體使用情況,現在,我通過,我通過HTTP請求對象分頁。我知道這裏不一定需要成爲線程,而是我可以提出異步請求,但是如何(以及解釋)如何改進。
這正是我一直在尋找的建議。非常感謝! – tau
'如果您的系統上的內核數量多於核心數量,這樣做效率不高。' - 你知道線程可能會被網絡綁定並且大部分時間被阻塞? –
是的,但我想了解如何更好地使用線程(正如我在我的帖子中所說的,我寧願用異步請求解決這個特定問題,但它讓我思考如何更有效地管理Java中的線程)。 – tau