添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

我们来看下面的一个例子,演示如何改变线程的优先级。高优先级线程优先执行。但是不能完全保证,因为线程是高度依赖系统的。它只提高了优先级较高的线程在低优先级线程之前执行的机会。

using System;
using System.Threading;
public class MyThread
    public void Thread1()
        for(int i=0; i<3; i++)
            Thread t = Thread.CurrentThread;
            Console.WriteLine(t.Name + " is running");
public class ThreadExample
    public static void Main()
        MyThread mt = new MyThread();
        Thread t1 = new Thread(new ThreadStart(mt.Thread1));
        Thread t2 = new Thread(new ThreadStart(mt.Thread1));
        Thread t3 = new Thread(new ThreadStart(mt.Thread1));
        t1.Name = "Highest-Thread ";
        t2.Name = "Normal-Thread ";
        t3.Name = "Lowest-Thread ";
        t1.Priority = ThreadPriority.Highest;
        t2.Priority = ThreadPriority.Normal;
        t3.Priority = ThreadPriority.Lowest;
        t1.Start();
        t2.Start();
        t3.Start();

输出是不可预测的,因为线程系统依赖性高。它可以遵循任何算法抢先或非抢占式来执行。

执行上面示例代码,得到以下结果 -

Highest-Thread  is running
Normal-Thread  is running
Normal-Thread  is running
Normal-Thread  is running
Lowest-Thread  is running
Lowest-Thread  is running
Lowest-Thread  is running
Highest-Thread  is running
Highest-Thread  is running