国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

多線程系列(2)線程池ThreadPool

2019-11-17 03:05:45
字體:
來源:轉載
供稿:網友

多線程系列(2)線程池ThreadPool

  上一篇文章我們總結了多線程最基礎的知識點Thread,我們知道了如何開啟一個新的異步線程去做一些事情。可是當我們要開啟很多線程的時候,如果仍然使用Thread我們需要去管理每一個線程的啟動,掛起和終止,顯然是很麻煩的一件事情。還好.net framework為我們提供了線程池ThreadPool來幫助我們來管理這些線程,這樣我們就不再需要手動地去終止這些線程。這一篇文章就讓我們來學習一下線程池ThreadPool吧。關于它我想從以下幾個方面進行總結。

  1. 認識線程池ThreadPool
  2. ThreadPool的用法

認識線程池ThreadPool

ThreadPool類是一個靜態類,你不能也不必要生成它的對象。而且一旦使用該方法在線程池中添加了一個項目,那么該項目是無法取消的。這里你無需自己建立線程,我們只需要把要做的工作寫成函數,然后作為參數傳遞給ThreadPool.QueueUserWorkItem()方法就行了,傳遞的方法是依靠WaitCallBack代理對象,而線程的建立,管理和運行等工作都是由系統自動完成的,你無須考慮那些復雜的細節問題了。

ThreadPool的用法

我現在在之前的例子的基礎上,使用線程池ThreadPool來實現。代碼如下。

namespace ThreadDemo{    class PRogram    {        static void Main(string[] args)        {            // 使用ThreadPool實現            Fish fish1 = new Fish { Name = "小黃魚" };            Fish fish2 = new Fish { Name = "大鯊魚" };            Fish fish3 = new Fish { Name = "燈籠魚" };            Fish fish4 = new Fish { Name = "紅鯉魚" };            Fish fish5 = new Fish { Name = "燈籠魚" };            ThreadPool.QueueUserWorkItem(f => { fish1.Move(); }); //lambda表達式            ThreadPool.QueueUserWorkItem(f => { fish2.Move(); });            ThreadPool.QueueUserWorkItem(f => { fish3.Move(); });            ThreadPool.QueueUserWorkItem(f => { fish4.Move(); });            ThreadPool.QueueUserWorkItem(f => { fish5.Move(); });            Console.ReadKey();        }    }    /// <summary>    /// 魚    /// </summary>    public class Fish    {        public string Name { get; set; }        public int Score { get; set; }        public Fish()        {        }        public void Move()        {            Console.WriteLine(string.Format("{0}在游來游去...", Name));        }    }}

程序運行結果如下。

下一篇文章我將要總結.net 4.0中新增的特性Task任務,歡迎大家繼續關注。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉水县| 西安市| 资中县| 新余市| 大关县| 平江县| 高青县| 淮阳县| 长汀县| 江川县| 农安县| 衡东县| 博湖县| 牙克石市| 秦安县| 九龙坡区| 罗城| 新和县| 平安县| 万年县| 老河口市| 洮南市| 五台县| 陆川县| 昭通市| 措美县| 枣庄市| 长子县| 武宣县| 库车县| 阿荣旗| 迁安市| 涞水县| 吉林市| 刚察县| 邵阳市| 从江县| 三明市| 富源县| 枣阳市| 峨边|