最近同事在编写一个基于UPD RTP协议的通讯软件,在处理接收Listen时,发现了一个问题究竟是用Thread仍是ThreadPool呢?性能
我看同事的问题比较有典型性,仍是作以整理培训一下吧操作系统
Thread类,一次使用一个线程来建立删除线程,这种方式代价比较大(主要是建立和消毁过程,操做系统付出的代价)而ThreadPool 线程
的出现主要是解决这个问题,将线程池化,能够重用已有的线程,使用完线程后,线程就会返回线程池,供之后使用。ThreadPool有25个软件
可用的线程(每一个处理器)。List
ThreadPool类应用场景:线程池
1.以简单的方式建立和删除线程;程序
2.应用程序主线程的性能要优先考虑;通信
Thread类的应用场景:协议
1.要控制线程的优先级;管理
2.使用的线程周期比较长;
3.但愿对线程有更多的管理维护。