所以,假设我有一个迭代器,它返回一些类CustomClass。迭代器有“很多”CustomClass可以使用。更重要的是,让我们说用户输入的内容使我的程序决定我的程序随时可以运行5个线程。
在某种程度上,预计会发生这样的事情:
for(int i = 0; i < 5 && it.hasNext(); i++) {
new Thread(it.next()).start();
}
现在,再次只允许五个,并且迭代器中还有更多元素。但是在使用run()完成一个线程之后,我希望它调用it.next()并创建一个新线程。但问题是它没有在这个线程中定义。 CustomClass甚至没有任何类型的next()方法。我如何使这项工作成为可能,以便每个线程可以有效地“访问”迭代器?
答案 0 :(得分:2)
查看Java教程中的executors and thread pools部分。基本的想法是对你的工作进行排队,当一个线程“变得可用”时,它将接收下一部分工作并开始执行它。