Java多线程并发的的Executors类提供了一种创建和管理线程池的方式,其中Executors.newFixedThreadPool(int n)和Executors.newCachedThreadPool()方法最常用。
Executors.newFixedThreadPool
ExecutorService executor = Executors.newFixedThreadPool(3);
for(int i=0; i<10; i++){
executor.submit(new MyRunnable(i));
}
executor.shutdown();
- 创建一个最大为3的线程池,即同时只能有3个线程在执行。
- 提交10个任务,每个任务都是实现了Runnable接口的对象。
- 执行
shutdown()
方法,等待所有任务完成后关闭线程池。
Executors.newCachedThreadPool
ExecutorService executor = Executors.newCachedThreadPool();
for(int i=0; i<10; i++){
executor.submit(new MyRunnable(i));
}
executor.shutdown();
- 创建一个线程池,根据需要创建新的线程,没有固定的最大数。
- 提交10个任务,每个任务都是实现了Runnable接口的对象。
- 执行
shutdown()
方法,等待所有任务完成后关闭线程池。
不管是使用newFixedThreadPool()
还是newCachedThreadPool()
方法,都需要通过submit()
方法提交任务,线程池会自动分配线程来执行任务。同时在任务执行完毕后需要调用shutdown()
方法关闭线程池。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java多线程并发executorservice(任务调度)类 - Python技术站