创建线程池的几种方式
来源:互联网 发布:淘宝店铺发布产品 编辑:程序博客网 时间:2024/06/02 02:01
java类库提供一个灵活的线程池以及一些有用的默认配置;我们可以通过Executors的静态方法来创建线程池。
newFixedThreadPool(int nThreads)
创建一个固定长度的线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程规模将不再变化,当线程发生未预期的错误而结束时,线程池会补充一个新的线程
newCachedThreadPool()
创建一个可缓存的线程池,如果线程池的规模超过了处理需求,将自动回收空闲线程,而当需求增加时,则可以自动添加新线程,线程池的规模不存在任何限制
newSingleThreadExecutor()
这是一个单线程的Executor,它创建单个工作线程来执行任务,如果这个线程异常结束,会创建一个新的来替代它;它的特点是能确保依照任务在队列中的顺序来串行执行
newScheduledThreadPool(int corePoolSize)
创建了一个固定长度的线程池,而且以延迟或定时的方式来执行任务,类似于Timer。
举个栗子
private static final Executor exec=Executors.newFixedThreadPool(50);Runnable runnable=new Runnable(){ public void run(){ ... }}exec.execute(runnable);Callable<Object> callable=new Callable<Object>() { public Object call() throws Exception { return null; }};Future future=executorService.submit(callable);future.get(); // 等待计算完成后,获取结果future.isDone(); // 如果任务已完成,则返回 truefuture.isCancelled(); // 如果在任务正常完成前将其取消,则返回 truefuture.cancel(true); // 试图取消对此任务的执行,true中断运行的任务,false允许正在运行的任务运行完成
0 0
- 创建线程池的几种方式
- 线程池的几种创建方式
- 线程池的几种常见的创建的方式
- 线程池的几种常见的创建的方式
- C#几种创建线程的方式
- 总结几种创建线程的方式
- 创建线程的几种方式
- 二、创建线程的几种方式
- 创建线程的几种方式
- 创建线程的几种方式
- 创建线程的几种方式
- Java-线程创建的几种方式
- 多线程:创建线程的几种方式
- java中创建线程的的几种方式
- java中创建线程的的几种方式
- uclinux创建内核线程的几种方式
- uclinux创建内核线程的几种方式
- ios线程篇:多线程的几种创建方式
- c++第一次上机报告
- Raspberry Pi B的UART极简例程
- 关于mysql的使用
- 程序员的7点自我修养
- 对MFC开发的思考
- 创建线程池的几种方式
- 1001. 害死人不偿命的(3n+1)猜想 (15)——做题纪录
- HDU 1205
- java中数组常见的排序问题整理
- WIFI Direct
- 集合-Generic
- java资源表示之------File对对象
- 【bzoj4300】绝世好题 二进制
- *构成的三角形