在我的公司這裡,因為要跟很多特殊的設備打交道,所以會用到多線程的東西,那麼我們在進行多線程處理的時候,怎麼去設置優先順序 我這裡用聽歌和下載小說做了個例子,我們用電腦的時候肯定是可以邊聽歌邊下載小說的,那麼這就需要並行,有個問題就是我想優先聽 歌,下載小說對我來說不是那麼急的話我就可以對兩個事情進行優 ...
在我的公司這裡,因為要跟很多特殊的設備打交道,所以會用到多線程的東西,那麼我們在進行多線程處理的時候,怎麼去設置優先順序
我這裡用聽歌和下載小說做了個例子,我們用電腦的時候肯定是可以邊聽歌邊下載小說的,那麼這就需要並行,有個問題就是我想優先聽
歌,下載小說對我來說不是那麼急的話我就可以對兩個事情進行優先順序的管控。
線程里有個屬性Priority可以用來設置優先順序,我設置線程1的優先順序高於線程2的優先順序,那麼線程1就會比線程2多運行一段時間,這個是人眼觀察不出來的
運行速度,CPU運行速度可不是能用人眼查看的
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();
這裡我們看一下執行結果
從結果中可以看到,優先順序高的線程得到運行的次數比優先順序低的線程多,但即使是最低優先順序的線程都有很大的機會來執行。