线程池 冷不防 2023-01-02 05:26 4阅读 0赞 # 线程池 # ## 概述: ## 用来存放线程对象的进行统一管理的一个容器,就叫做线程池。 第三方提供的一种工具,当我们需要线程对象做事情的时候找线程池获取对象帮我们做事情就ok,做完之后把对象还回去。 **实际使用**:我们要做事情只需要把线程任务给线程池,线程池派线程对象帮忙做事情 # Executors # ## 概述: ## 工具类,可以通过他特有的方法获取到线程池对象,获取到线程池对象就相当于获取到了线程对象,只需要把要线程做的事交给线程池就ok ## 功能: ## ### 1、newSingleThreadExecutor() ### > 获取一个只有一个线程对象的线程池对象 ### 2、 newFixedThreadPool(int num) ### > 获取一个指定个数线程对象的线程池对象 ### ExcutorService:就是线程池 ### ## 方法: ## ### 1、submit(Runnable r): ### > 提交线程任务对象给线程池 ### 2、shutdown(): ### > 关闭线程池【把提交的所有的任务执行完毕关闭线程池】 ### 3、shutdownNow() ### > 关闭线程池【把正在执行的任务执行完关闭线程池】 ## 步骤: ## 1、获取线程池对象 2、创建线程任务对象 3、把任务对象提交给线程池对象 4、关闭线程池【实际开发不需要我们关】 **代码示例:** import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ExecutorsDemo { public static void main(String[] args) { //1、获取线程池对象 // 获取一个只有一个线程对象的线程池对象 ExecutorService pool1 = Executors.newSingleThreadExecutor(); //获取一个指定个数线程对象的线程池对象 ExecutorService pool2 = Executors.newFixedThreadPool(3); //2、创建线程任务对象 Runnable r1 = new Runnable() { public void run() { System.out.println(Thread.currentThread().getName()+ "线程任务一"); } }; Runnable r2 = new Runnable() { public void run() { System.out.println(Thread.currentThread().getName() + "线程任务二"); } }; Runnable r3 = new Runnable() { public void run() { System.out.println(Thread.currentThread().getName() + "线程任务三"); } }; Runnable r4 = new Runnable() { public void run() { System.out.println(Thread.currentThread().getName() + "线程任务四"); } }; //3、提交线程任务给线程池 // pool1.submit(r1); // pool1.submit(r2); // pool1.submit(r3); // pool1.submit(r4); pool2.submit(r1); pool2.submit(r2); pool2.submit(r3); pool2.submit(r4); //关闭线程池(实际开发中不需要我们关) // pool1.shutdown(); //执行完毕所有的提交任务 再关闭 // pool1.shutdownNow(); // 执行完正在执行的的任务 就关闭 pool2.shutdown(); //执行完毕所有的提交任务 再关闭 // pool2.shutdownNow(); // 执行完正在执行的的任务 就关闭 } }
相关 Java 线程池、Runnable线程池、Callable线程池 线程池: 其实就是一个容纳多个线程的容器,其中的线程可以反复的使用,省去了频繁创建和销毁过程对象的操作,无需反复创建线程面消耗过多资源。 为什么要用线程池: 合理 青旅半醒/ 2023年02月26日 12:30/ 0 赞/ 57 阅读
相关 线程、线程池 创建线程的3种方法: package com.frank.threadPool.createThread; / @author 小石潭记 布满荆棘的人生/ 2022年10月22日 04:27/ 0 赞/ 388 阅读
相关 线程池 1.所谓线程池,就是程序的初始化阶段,就预先创建一批线程,每个线程都做好准备干活; 2.然后有一个任务列表,一开始为空,当有任务来了,就往任务列表里面添加;这个任务列表 痛定思痛。/ 2022年06月13日 13:22/ 0 赞/ 331 阅读
相关 线程池 西施越溪女,明艳光云海 最近用线程池和不用线程池做了个速度的测试,在这里备注下: 结果是速度不相上下; public static void main(Str 妖狐艹你老母/ 2022年05月20日 02:35/ 0 赞/ 284 阅读
相关 线程池 线程池 Java里面线程池的顶级接口是 java.util.concurrent.Executor , 但是严格意义上讲 Executor并不是一个线程池,而只是一个 迈不过友情╰/ 2022年03月06日 14:34/ 0 赞/ 403 阅读
相关 线程池 线程池 > 从字面义上来讲,是指管理一组同构工作线程的资源池。线程池是与工作队列密切相关的,其中在工作队列中(Worker Queue)保存了所有等待执行的任务。工作者( 清疚/ 2021年12月11日 03:35/ 0 赞/ 389 阅读
相关 线程池 可preStart一个或全部core thread 0,小于core则来一个任务建一个线程(firstTask),队列,额外线程,拒绝 一个AtomicInteger的 今天药忘吃喽~/ 2021年11月23日 03:40/ 0 赞/ 415 阅读
相关 线程池 1、先创建线程池 import java.util.concurrent.ArrayBlockingQueue; import java.util.concu 拼搏现实的明天。/ 2021年11月09日 14:28/ 0 赞/ 424 阅读
还没有评论,来说两句吧...