java中的线程池问题
HI以下代码用于应用程序中java中的线程池问题,java,thread-synchronization,java-threads,Java,Thread Synchronization,Java Threads,HI以下代码用于应用程序中 threadPool.shutdown(); while (!threadPool.awaitTermination(10, TimeUnit.SECONDS)) { logger.info("Waiting for " + (threadPool.getQueue().size() + threadPool .getActiveCo
threadPool.shutdown();
while (!threadPool.awaitTermination(10, TimeUnit.SECONDS)) {
logger.info("Waiting for "
+ (threadPool.getQueue().size() + threadPool
.getActiveCount()) + " jobs to complete.");
}
当应用程序运行时,它在循环中运行
- 等待134个工作完成
- 等待134个工作完成
- 等待134个工作完成
这意味着您的工作线程负责自行关闭。您尚未为工作人员提供代码,但我假设他们正在执行一个不会退出的阻塞操作。解决此问题的一种常见方法是让工作人员定期检查
关闭调用前设置的某种共享变量。他们被有效地告知停止他们正在做的任何事情。应该有人来做。实际上,工人正在执行一些业务操作。对于少数方法,添加了synchronized关键字。synchronized关键字会导致上述情况吗?