最近同事在編寫一個基於UPD RTP協議的通訊軟件,在處理接收Listen時,發現了一個問題究竟是用Thread仍是ThreadPool呢?性能
我看同事的問題比較有典型性,仍是作以整理培訓一下吧操作系統
Thread類,一次使用一個線程來建立刪除線程,這種方式代價比較大(主要是建立和消毀過程,操做系統付出的代價)而ThreadPool 線程
的出現主要是解決這個問題,將線程池化,能夠重用已有的線程,使用完線程後,線程就會返回線程池,供之後使用。ThreadPool有25個軟件
可用的線程(每一個處理器)。List
ThreadPool類應用場景:線程池
1.以簡單的方式建立和刪除線程;程序
2.應用程序主線程的性能要優先考慮;通信
Thread類的應用場景:協議
1.要控制線程的優先級;管理
2.使用的線程週期比較長;
3.但願對線程有更多的管理維護。