1
所以,假設我有一個迭代器它返回類CustomClass的東西。迭代器具有「許多」CustomClass。更重要的是,讓我們說一個用戶輸入的東西,使我的程序決定只有5個線程可以在我的程序隨時運行。限制線程和/或重複使用線程的迭代器?
在某種程度上,這樣的事情即將發生:
for(int i = 0; i < 5 && it.hasNext(); i++) {
new Thread(it.next()).start();
}
現在,再次只有五是允許的,也有在迭代器有更多元素。但是在一個線程完成run()之後,我希望它調用它.next()並創建一個新的線程。但問題是它沒有在這個線程中定義。 CustomClass甚至沒有任何類型的next()方法。我將如何完成這項工作,以便每個線程都可以有效地「訪問」迭代器?
如果你不想同時做多件事情,不要使用線程。 – SLaks 2012-01-05 23:37:37
看看http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html – 2012-01-05 23:58:27
這不是我不想同時做多件事,它是我想這樣做,但有一個限制。 例如,假設迭代器中的對象運行一個加載URL的方法,並從該URL加載圖像來處理它。鑑於有些人(如果不是很多)的聯繫較弱,他們可能希望一次只能同時加載五個頁面+圖像,而不是二十+,以便能夠仍然在YouTube上觀看視頻而不受干擾。 – Apothem 2012-01-06 02:33:01