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

相关文章
相关标签/搜索