线程池小结

it2022-05-05  175

系统启动一个线程的成本很高,所以用线程池可以很好的提高性能,特别是,需要创建大量生命期很短的线程,更应该用线程池。

线程池在启动的时候,就会创建大量空闲的线程,程序将Runnable,callable对象传给线程池,线程池就会启动一个线程执行run()或call()方法。执行完之后,线程也不会死,而是继续返回线程池,变成空闲的线程。

1.创建线程池

由Executors工厂类中的某个静态工厂方法来创建。

如:newfixedThreadPool(int n)创建一个可重复使用的,有固定线程数的线程池

代码如下:

package cn.com.Thread; /* 线程池 */ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadPoolTest { public static void main(String[] args) throws Exception { //创建一个固定线程数为6的线程池 ExecutorService pool = Executors.newFixedThreadPool(6); Runnable target = () ->{ for (int i = 0; i<100;i++) { System.out.println(Thread.currentThread().getName()+" "+i); } }; pool.submit(target);//向线程池提交两个线程 pool.submit(target); pool.shutdown(); } }

2.java8增强的ForkJoinPool-将大任务分解成小任务

 

 


最新回复(0)