none
多线程不稳定的问题 RRS feed

  • 问题

  • class Thread_App
    
        {
    
            public static void ThreadProc()
    
            {
    
                for (int i = 0; i < 10;i++ )
    
                {
    
                    Console.WriteLine("ThreadProc:{0}",i);
    
                    Thread.Sleep(0);
    
                }
    
            }
    
            public static void Main()
    
            {
    
                Console.WriteLine("在主进程中启动连个线程A、B!");
    
    
    
                Thread A = new Thread(new ThreadStart(ThreadProc));
    
                A.Start();
    
    
    
                Thread B = new Thread(new ThreadStart(ThreadProc));
    
                B.Start();
    
                B.Suspend();
    
    
    
                for (int i = 0; i < 4;i++ )
    
                {
    
                    Console.WriteLine("主进程输出...");
    
                    Thread.Sleep(0);
    
                }
    
    
    
                Console.WriteLine("主进程调用线程Join方法直到ThreadProc结束");
    
                A.Join();
    
                Console.WriteLine("ThreadProcl线程结束");
    
                B.Resume();
    
                Console.ReadLine();
    
            }
    
    
    
        }
    
    
    以上代码是在看李建忠老师的多线程编程时自己又手写了一遍视频中的代码,发现跟视频中的结果不一致,而且每次执行结果都不一样,不知道是不是多线程从1.1到3.5是不是有很大变化呢?
    平和
    2009年6月30日 9:45

答案

  • 多线程执行结果不一样很正常,这和你的电脑每时每刻的cpu,运行速度有关,  因为不同时刻CPU的使用情况不同


    努力+方法=成功
    • 已标记为答案 Weng Yuli 2009年7月1日 0:26
    2009年6月30日 9:54
  • 你好!
         多线程的程序的确就是这个样子的,各个线程是抢占式的,谁先获得CPU的时间片并不一定啊!
    周雪峰
    • 已标记为答案 Weng Yuli 2009年7月1日 0:26
    2009年6月30日 16:18
    版主

全部回复