Board logo

标题: 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