Izz*_*zza 4 java multithreading executorservice threadpool
如果我使用Executor框架在java中创建一个包含10个线程的固定大小的线程池:
private final ExecutorService pool;
pool = Executors.newFixedThreadPool(10);
Run Code Online (Sandbox Code Playgroud)
然后尝试提交10个以上的任务(例如,12个任务);
for (int i = 0 ; i < 12 ; i++) {
pool.execute(new Handler(myRunnable));
}
Run Code Online (Sandbox Code Playgroud)
额外任务会发生什么(根据12个任务的例子,额外的两个任务)?在线程完成工作之前它们会被阻塞吗?
Sah*_*hoo 23
引用Javadoc Executors.newFixedThreadPool(int nThreads)(强调我的):
创建一个线程池,该线程池重用在共享的无界队列中运行的固定数量的线程.在任何时候,最多nThreads线程将是活动的处理任务.如果在所有线程都处于活动状态时提交了其他任务,则它们将在队列中等待,直到线程可用.如果任何线程由于在关闭之前执行期间的故障而终止,则在需要执行后续任务时将使用新的线程.池中的线程将一直存在,直到它被明确关闭.
像Java Concurrency Framework一样成熟的代码的Javadoc包含大量的知识.让他们靠近.
| 归档时间: |
|
| 查看次数: |
7698 次 |
| 最近记录: |