我正在尝试使用大量 SwingWorkers (~100)。我有一堂课
Creature extends SwingWorker<Creature, Point>
我想让每个实例同时独立移动。我正在使用 SwingWorker,因为每个实例化的位置都在 GUI 中表示并且不断更新。目前,只有 10 个会移动,其他不会移动,因为SwingWorker 的最大线程限制为 10。链接文章的建议是将每个 SwingWorker 放在自己的线程中,因为它们实现了 Runnable 并允许绕过那个限制。
我试图这样做,但没有任何结果,所以很明显我把它搞砸了。如何增加可用 SwingWorker 的数量(使用文章中指定的方法或其他方式)?
Executor ex = Executors.newCachedThreadPool();
for(int i = 0; i < 20; i++){
final Creature c = new Creature(this);
Thread t = new Thread(c){
public void run(){
c.execute();
}
};
ex.execute(t);
}