在实际工作中传统的创建线程方法是很浪费资源的,因为要创建线程,然后还要销毁线程,如果线程量太多的话,对于程序的响应速度会有比较大的影响,而利用线程池去创建线程的话,是能够有效的优化我们程序的运行速度。
线程池比较常用的有三种,具体用法如下:
//单个线程池
ExecutorService executorService=Executors.newSingleThreadExecutor();
//固定大小的线程池
ExecutorService executorService1=Executors.newFixedThreadPool(5);
//具有弹性的线程池
ExecutorService executorService2= Executors.newCachedThreadPool();
/*
单个线程跑
for (int i = 0; i < 10; i++) {
try{
executorService.execute(()->{
System.out.println(Thread.currentThread().getName()+"ok");
});}
catch(Excetion e){
}finally{
executorService.shutdown();
}
}
*/
/*固定线程跑
try{
for (int i = 0; i < 10; i++) {
executorService1.execute(()->{
System.out.println(Thread.currentThread().getName()+"ok");
});}}
catch(Exception E){
E.printStackTrace();
}finally{
executorService1.shutdown();
}
*/
//弹性线程池
try{
for (int i = 0; i < 100; i++) {
executorService2.execute(()->{
System.out.println(Thread.currentThread().getName()+"ok");
});}}
catch(Exception E){
E.printStackTrace();
}finally{
executorService2.shutdown();
}
}