

/*
__  创建线程的方式四:使用线程池
 *
 * __好处:
 * 1.提高响应速度(减少了创建新线程的时间)
  2.降低资源消耗(重复利用线程池中的线程,不需要每次都创建)
 __ 3.便于线程管理
 *      corePoolSize:核心池的大小
       maximumPoolSize:最大线程数
 __      keepAliveTime:线程没有任务是最多保持多长时间后会终止
 __*
_
package com.atguigu.java3;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/*** 创建线程的方式四:使用线程池** 好处:* 1.提高响应速度(减少了创建新线程的时间)* 2.降低资源消耗(重复利用线程池中的线程,不需要每次都创建)* 3.便于线程管理* corePoolSize:核心池的大小* maximumPoolSize:最大线程数* keepAliveTime:线程没有任务是最多保持多长时间后会终止** @author Dxkstart* @create 2021-05-08 17:20*/public class Threadpool {public static void main(String[] args) {//1.提供指定线程数量的线程池ExecutorService service = Executors.newFixedThreadPool(10);//2.执行指定的线程的操作。需要提供实现Runable接口或Callable接口实现类的对象service.execute(new NumberThread());//适合使用于Runnableservice.execute(new NumberThread1());//适合使用于Runnable// service.submit(Callable callable);//适合使用于Callable//3.关闭连接池service.shutdown();}}class NumberThread implements Runnable{@Overridepublic void run() {for (int i = 0;i <= 100;i++){if(i % 2 == 0){System.out.println(Thread.currentThread().getName()+ ":"+i);}}}}class NumberThread1 implements Runnable{@Overridepublic void run() {for (int i = 0;i <= 100;i++){if(i % 2 != 0){System.out.println(Thread.currentThread().getName()+ ":"+i);}}}}
