public class ThreadUtils {
private static final ThreadUtil ourInstance = new ThreadUtil();
// 线程池的时间执行者
ThreadPoolExecutor threadPoolExecutor;
private ThreadUtil() {
// 定义线程池,依此参数意义:核心线程数量、线程总数量、线程等待超时时间、时间单位、
// 线程等待时存放任务的阻塞队列
threadPoolExecutor = new ThreadPoolExecutor(3, 6,
10, TimeUnit.SECONDS,
new LinkedBlockingDeque<Runnable>(3));
// threadPoolExecutor.shutdownNow();
}
// 单例模式
@NonNull
public static ThreadUtil getInstance() {
return ourInstance;
}
// 启动线程,开始执行任务
public void run(@NonNull Runnable runnable) {
threadPoolExecutor.execute(runnable);
}
}
线程池的使用Demo
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Lock锁的使用 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释...
- 这篇文章是转载InfoQ上方腾飞老师的一篇文章,这篇文章已经写的非常详细了,阅读原文请点击这里. 1. 引言 合理...
- WebStorm for mac是jetbrains公司旗下一款很好用的JavaScript开发工具。被广大中国J...