标题:
Java中的多线程你只要看这一篇就够了(7)管理类
[打印本页]
作者:
look_w
时间:
2018-12-15 13:31
标题:
Java中的多线程你只要看这一篇就够了(7)管理类
5.管理类管理类的概念比较泛,用于管理线程,本身不是多线程的,但提供了一些机制来利用上述的工具做一些封装。
了解到的值得一提的管理类:ThreadPoolExecutor和 JMX框架下的系统级管理类 ThreadMXBean
ThreadPoolExecutor
如果不了解这个类,应该了解前面提到的ExecutorService,开一个自己的线程池非常方便:
[url=]
[/url]
ExecutorService e =
Executors.newCachedThreadPool(); ExecutorService e
=
Executors.newSingleThreadExecutor(); ExecutorService e
= Executors.newFixedThreadPool(3
);
//
第一种是可变大小线程池,按照任务数来分配线程,
//
第二种是单线程池,相当于FixedThreadPool(1)
//
第三种是固定大小线程池。
//
然后运行
e.execute(
new
MyRunnableImpl());[url=]
[/url]
该类内部是通过ThreadPoolExecutor实现的,掌握该类有助于理解线程池的管理,本质上,他们都是ThreadPoolExecutor类的各种实现版本。请参见javadoc:
ThreadPoolExecutor参数解释
翻译一下:
[url=]
[/url]
corePoolSize:池内线程初始值与最小值,就算是空闲状态,也会保持该数量线程。maximumPoolSize:线程最大值,线程的增长始终不会超过该值。keepAliveTime:当池内线程数高于corePoolSize时,经过多少时间多余的空闲线程才会被回收。回收前处于wait状态unit:时间单位,可以使用TimeUnit的实例,如TimeUnit.MILLISECONDS workQueue:待入任务(Runnable)的等待场所,该参数主要影响调度策略,如公平与否,是否产生饿死(starving)threadFactory:线程工厂类,有默认实现,如果有自定义的需要则需要自己实现ThreadFactory接口并作为参数传入。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0