java - 当线程池中没有空闲线程并且我们向池中提交任务时会发生什么?

标签 java multithreading threadpool

线程创建方法会等待线程释放吗? 我可以减少使用线程池生成的线程数吗?

最佳答案

如果使用缓存线程池,该池将创建更多线程。但是,这只是任何时候所需的最大值,可能远少于您提交的任务数。

如果您使用固定大小的线程池,它会创建固定数量的线程,无论您是否给它任何任务,或者如果您给它的任务超过它的能力。它会将所有正在等待的任务排队。

Will the thread creating method wait for a thread to get free?

虽然您可以创建一个执行此操作的队列,但这不是默认行为。一个更常见的解决方案是让调用者在需要时执行任务。

can I reduce the number of threads generated using thread pooling?

如果您限制线程数,线程池可能会产生比任务 esp 少得多的线程。

关于java - 当线程池中没有空闲线程并且我们向池中提交任务时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21939032/

相关文章:

java - Java 中的悬挂线程

java - 如何等待 ThreadPoolExecutor 完成

java - ExecutorService awaitTermination 方法未按预期执行

java - 如何在 ArrayList 对象中存储方法或值

c# - C#中的线程问题

java - 使用 tomcat7 部署应用程序的问题

c# - 新内锁

c - SIGIO 只通知线程池中的最后一个线程

java - 生成整数并丢弃最低值

java - 如何同步两个版本的 NetBeans?