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