当前位置:网站首页>线程池的创建与使用
线程池的创建与使用
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();
}
}
}
边栏推荐
- JS variable case
- Flask项目使用flask-socketio异常:TypeError: function() argument 1 must be code, not str
- Thread和Runnable创建线程的方式对比
- Error: No named parameter with the name ‘foregroundColor‘
- PMP证书有没有必要续期?
- Why do many people misunderstand technical debt
- torch optimizer小解析
- [736. LISP syntax parsing]
- Techniques d'utilisation de sublime
- npm ERR! 400 Bad Request - PUT xxx - “devDependencies“ dep “xx“ is not a valid dependency name
猜你喜欢
Flask项目使用flask-socketio异常:TypeError: function() argument 1 must be code, not str
[Android kotlin collaboration] use coroutinecontext to realize the retry logic after a network request fails
拿到PMP认证带来什么改变?
一文搞懂常见的网络I/O模型
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)
Leetcode(46)——全排列
《二》标签
【opencv】图像形态学操作-opencv标记不同连通域的位置
Weebly移动端网站编辑器 手机浏览新时代
高手勿进!写给初中级程序员以及还在大学修炼的“准程序员”的成长秘籍
随机推荐
Ansible中的inventory主机清单(预祝你我有数不尽的鲜花和浪漫)
Basic knowledge of road loss of 3GPP channel model
Sublime tips
A line of R code draws the population pyramid
Run the command once per second in Bash- Run command every second in Bash?
STM32F103 realize IAP online upgrade application
深入解析Kubebuilder
Ansible reports an error: "MSG": "invalid/incorrect password: permission denied, please try again“
CentOS 7.9安装Oracle 21c历险记
Ansible中的inventory主機清單(預祝你我有數不盡的鮮花和浪漫)
一文搞懂常见的网络I/O模型
JS input and output
JS 的 try catch finally 中 return 的执行顺序
与利润无关的背包问题(深度优先搜索)
Using thread class and runnable interface to realize the difference between multithreading
《二》标签
A simple and beautiful regression table is produced in one line of code~
npm ERR! 400 Bad Request - PUT xxx - “devDependencies“ dep “xx“ is not a valid dependency name
动态生成表格
DBSync新增对MongoDB、ES的支持