static class Program
    {
        static Thread t1;
        static Thread t2;        static void Main()
        {
            t1 = new Thread(Method1);
            t2 = new Thread(Method2);            t1.Start();
            t2.Start();            Console.ReadLine();
        }        public static void Method1()
        {
            for (int i = 1; i <= 25; i++)
            {
                if (i == 16)
                {
                    Thread.Sleep(1000);
                }
                Console.WriteLine(i);
            }
        }        public static void Method2()
        {
            for (int i = 26; i <= 75; i++)
            {
                if (i == 50)
                {
                    Thread.Sleep(1000);
                }
                Console.WriteLine(i);
            }
        }
    }
怎么我这段代码执行的结果总是一个顺序,没有一点变化。优先级相同的线程调用顺序是由什么决定的呢?请高手指点一下。

解决方案 »

  1.   

    up除了计算机的心情,还有RP,嘿嘿
      

  2.   

    我换了的一台机器,虽然运行结果和我的不一样,但是也是保持不变,我们的OS是win2000
      

  3.   

    优先级相同,CPU自动找个一个未被挂起的线程执行,顺序不一定
      

  4.   

    在window下...永远只有一个线程在运行....
    不可能同时有两个线程并行运行....
    优先级相同的话....如果线程能在分配的一个最小单位cpu时间内执行完毕
    那么这些线程的执行顺序是固定的....
    因为根据单向队列的先进先出原则来执行的...执行完之后会立即压入到单向队列的尾部