线程池 主要核心原理:
① 创建一个池子,池子中是空的
② 提交任务时,池子会创建新的线程对象来执行任务,当任务执行完毕,线程会还给池子,下回再次提交任务时,不需要创建新的线程,直接复用已有的线程即可
③ 但是如果提交任务时,池子中没有空闲线程,并且也无法创建新的线程的时候,任务就会排队等待
线程池 实现步骤:
① 创建线程池
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 {标签:Java,创建,基础,池子,任务,线程,提交,public From: https://www.cnblogs.com/gagaya2/p/17794779.html
//获取线程池对象
ExecutorService pool1 = Executors.newCachedThreadPool();
//给线程池提交任务
pool1.submit(new MyRunnable());
//销毁线程池(一旦销毁线程池,它里面所有的线程也会消失)
pool1.shutdown();
}