【发布时间】:2018-04-28 18:53:22
【问题描述】:
在我的程序中,我有一个名为“Vehicle”的类,它从 Thread 扩展而来,问题是在某个时候我需要这些 Threads 来创建一个任务(可运行),并且我希望所有这些任务都由同一个管理线程池,问题在于,如果我从包含此池的不同类调用方法,则每个其他线程都在创建不同的池。 我怎样才能避免这种情况? 提前致谢。
public class Station {
Arrivals arrivals;
Vehicle k;
ListPumps lp;
ExecutorService executor = Executors.newFixedThreadPool(3);
public synchronized void startWork(Pump p) {
Runnable w = new Work(p);
executor.execute(w);
executor.shutdown();
while (!executor.isTerminated()) {
}
System.out.println("Finished all threads");
}
}
【问题讨论】:
-
如果我正确理解您的问题陈述,那么您可以将
your different class创建为单例。 -
就是这样的方法,我试图写出声明方法,但我得到了相同的结果。
-
@J.FF 感谢您提供代码。我现在能够根据对下面代码的修改提供完整的答案。希望对您有所帮助。
-
通过构造函数注入线程池实例呢?
标签: java multithreading concurrency threadpool