当前位置:网站首页>线程池的创建与使用
线程池的创建与使用
2022-07-06 23:09:00 【洋啊桑815】
public ThreadPoolExecutor(int corePoolSize,核心线程的数量 int maximumPoolSize, 该线程池支持的最大线程数量 long keepAliveTime, 指定零时线程存活的时间 TimeUnit unit, 指定存活时间的单位 秒 分 时 天 BlockingQueue<Runnable> workQueue, 指定任务队列 ThreadFactory threadFactory, 指定在那个线程工厂创建线程 RejectedExecutionHandler handler) 指定线程忙 任务满时,新任务怎么办?
import java.util.concurrent.*;
public class TestDamo {
public static void main(String[] args) {
/*
* public ThreadPoolExecutor(int corePoolSize,核心线程的数量
int maximumPoolSize, 该线程池支持的最大线程数量
long keepAliveTime, 指定零时线程存活的时间
TimeUnit unit, 指定存活时间的单位 秒 分 时 天
BlockingQueue<Runnable> workQueue, 指定任务队列
ThreadFactory threadFactory, 指定在那个线程工厂创建线程
RejectedExecutionHandler handler) 指定线程忙 任务满时,新任务怎么办?
* */
ExecutorService pool=
new ThreadPoolExecutor
(3,5,8,
TimeUnit.SECONDS,new ArrayBlockingQueue<>(6),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.AbortPolicy());
MyRunable myRunable=new MyRunable();
pool.execute(myRunable);//执行Runable
/*
* Future<T>submit (Callable<T>task) 执行Callable
* void shutdown()等待任务执行完毕后关闭线程
* List<Runable>shutdownNow() 立刻关闭线程,停止正在执行的方法,并返回未执行的任务
* */
pool.shutdown();
}
}
class MyRunable implements Runnable{
@Override
public void run() {
try {
for (int i = 0; i < 5; i++) {
Thread.sleep(2000);
System.out.println("线程运行:"+(i+1));
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
边栏推荐
- 【最佳网页宽度及其实现】「建议收藏」
- 一个酷酷的“幽灵”控制台工具
- 3.基金的类型
- Comparison between thread and runnable in creating threads
- Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)
- Ansible中的inventory主机清单(预祝你我有数不尽的鲜花和浪漫)
- QT控件样式系列(一)之QSlider
- 01机器学习相关规定
- Pointer and array are input in function to realize reverse order output
- Can I specify a path in an attribute to map a property in my class to a child property in my JSON?
猜你喜欢
Time complexity & space complexity
The sooner you understand the four rules of life, the more blessed you will be
Ansible中的inventory主机清单(预祝你我有数不尽的鲜花和浪漫)
- [email protected]映射关系问题"/>
接口间调用为什么要用json、fastjson怎么赋值的、fastjson [email protected]映射关系问题
5G VoNR+之IMS Data Channel概念
高手勿进!写给初中级程序员以及还在大学修炼的“准程序员”的成长秘籍
Ansible中的inventory主機清單(預祝你我有數不盡的鮮花和浪漫)
[736. LISP syntax parsing]
No experts! Growth secrets for junior and intermediate programmers and "quasi programmers" who are still practicing in Universities
深入解析Kubebuilder
随机推荐
How to choose an offer and what factors should be considered
Ansible中的inventory主机清单(预祝你我有数不尽的鲜花和浪漫)
AOSP ~Binder 通信原理 (一) - 概要
File upload vulnerability summary
STM32 system timer flashing LED
批量归一化(标准化)处理
Monitoring cannot be started after Oracle modifies the computer name
A simple and beautiful regression table is produced in one line of code~
ThinkPHP关联预载入with
Test interview | how much can you answer the real test interview question of an Internet company?
Ansible overview and module explanation (you just passed today, but yesterday came to your face)
Time complexity & space complexity
The execution order of return in JS' try catch finally
A row of code r shows the table of Cox regression model
Function pointer and pointer function in C language
Salesforce 容器化 ISV 场景下的软件供应链安全落地实践
Leetcode(46)——全排列
STM32 encapsulates the one key configuration function of esp8266: realize the switching between AP mode and sta mode, and the creation of server and client
动态生成表格
史上最全学习率调整策略lr_scheduler