线程池ExecutorService
来源:互联网 发布:linux 启动service 编辑:程序博客网 时间:2024/06/01 10:27
线程池: 任务提交到线程池,而不是直接交给某线程,线程池拿到任务后,它在内部找空闲的线程进行执行(封装),任务是提交给线程池,一个线程只能执行一个任务,但可以同时向一个线程池提交多个任务。
创建固定大小的线程池
创建缓存线程池
如何实现线程死掉后重新启动?
答案:创建单一线程池Executors.newSingleThreadExecutor();
关闭线程池
shutdown() 线程池中都处于空闲是结束线程池
shutdownNow()线程池不管是否有任务在执行都停止
例子:
//线程池
public class ThreadPool {
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(1);
Runnable command = new Runnable() {
@Override
public void run() {
System.out.println("1"+Thread.currentThread().getName());
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
executorService.execute(command);
executorService.execute(command);
executorService.execute(command);
executorService.execute(command);
executorService.execute(command);
executorService.shutdown();
}
}
输出:
1pool-1-thread-1
1pool-1-thread-1
1pool-1-thread-1
1pool-1-thread-1
1pool-1-thread-1
都是一个线程在执行这些任务;在3s执行下一个
----------------------------------------------------------------------
线程池启动定时器
调用ScheduledExecutorService的schedule方法,返回的ScheduleFuture对象可以取消任务。
支持间隔重复任务的定时方式,不直接支持绝对定时方式,需要转换成相对时间方式。
Executors.newSchdeduledThreadPool(3).schedule (....)
- ExecutorService(线程池)+线程
- Android ExecutorService线程池
- ExecutorService线程池
- ExecutorService线程池
- ExecutorService线程池
- ExecutorService线程池
- 线程池ExecutorService newCachedThreadPool()
- ExecutorService线程池
- ExecutorService线程池
- Java ExecutorService 线程池
- ExecutorService线程池
- Android ExecutorService线程池
- Java ExecutorService 线程池
- ExecutorService线程池
- ExecutorService线程池
- Java ExecutorService 线程池
- ExecutorService线程池
- ExecutorService线程池
- 在8位单片机上面实现字符串的拼接(单片机上strcat的函数的实现)
- 我眼中的设计模式(6)
- (三十一)Qt中的调色板QPalette
- http与Socket的区别
- [编程题]数字和为sum的方法数
- 线程池ExecutorService
- 4、C++中新的关键字
- 图像处理基础(3):均值滤波器及其变种
- svn E000113错误
- Android Retrofit 2.0框架上传图片解决方案(一张与多张的处理)
- BS与CS的联系与区别
- 0220HTML学习
- UML常用图的几种关系的总结
- Xamarin.IOS UiTextView 长文本不显示问题。