Java基础 线程池

线程池 主要核心原理:

① 创建一个池子,池子中是空的

② 提交任务时,池子会创建新的线程对象来执行任务,当任务执行完毕,线程会还给池子,下回再次提交任务时,不需要创建新的线程,直接复用已有的线程即可

③ 但是如果提交任务时,池子中没有空闲线程,并且也无法创建新的线程的时候,任务就会排队等待

 

线程池 实现步骤:

① 创建线程池

Executors:线程池的工具类。通过这个工具类就可以调用方法,返回不同类型的线程池对象

public  static  ExecutorService  newCachedThreadPool ()   →   创建一个没有上限的线程池(上限是 int 类型的最大值)

public  static  ExecutorService  newFixedThreadPool (int  nThreads)   →   创建一个有上限的线程池

② 给线程池提交任务(提交任务时,线程池底层会创建线程或者复用已经存在的线程)

③ 所有的任务全部执行完毕,关闭线程池

 

代码示例:

public class MyRunnable implements Runnable {
@Override
public void run() {
//编写线程锁执行的代码
for (int i = 1; i <= 3; i++) {
System.out.println(Thread.currentThread().getName() + "---" + i);
}
}
}
-------------------------------------------------------------------------------------
public static void main(String[] args) throws Exception {
//获取线程池对象
ExecutorService pool1 = Executors.newCachedThreadPool();
//给线程池提交任务
pool1.submit(new MyRunnable());
//销毁线程池(一旦销毁线程池,它里面所有的线程也会消失)
pool1.shutdown();
}

posted @ 2023-10-28 22:13  1stzz1  阅读(16)  评论(0)    收藏  举报