C#多線程——優先級

       在個人公司這裏,由於要跟不少特殊的設備打交道,因此會用到多線程的東西,那麼咱們在進行多線程處理的時候,怎麼去設置優先級多線程

我這裏用聽歌和下載小說作了個例子,咱們用電腦的時候確定是能夠邊聽歌邊下載小說的,那麼這就須要並行,有個問題就是我想優先聽spa

歌,下載小說對我來講不是那麼急的話我就能夠對兩個事情進行優先級的管控。線程

        線程裏有個屬性Priority能夠用來設置優先級,我設置線程1的優先級高於線程2的優先級,那麼線程1就會比線程2多運行一段時間,這個是人眼觀察不出來的3d

運行速度,CPU運行速度可不是能用人眼查看的code

            bool b = true;
            int i=0, j=0;
            string Song = "";
            string Download = "";
            Thread Thread1=new Thread(() =>
            {
                while (b)
                {
                    Song="一百萬個可能";
                    i++;
                    
                }
            })
            {
                Name = "Thread1",
                Priority = ThreadPriority.Highest
            };
             Thread Thread2=new Thread(() =>
            {
                while (b)
                {
                    Download = "小說三體";
                    j++;
                }
            })
            {
                Name = "Thread2",
                Priority = ThreadPriority.Lowest
            };
            Thread1.Start();
            Thread2.Start();
            Thread.Sleep(1000);
            b = false;
            Console.WriteLine("Song: {0}, Download: {1}", Song, Download);
            Console.WriteLine("歌曲的優先級:{0}",i);
            Console.WriteLine("下載的優先級:{0}",j);
            Console.ReadLine();

這裏咱們看一下執行結果blog

從結果中能夠看到,優先級高的線程獲得運行的次數比優先級低的線程多,但即便是最低優先級的線程都有很大的機會來執行。string

相關文章
相關標籤/搜索