为什么下面的代码对不同的执行给出不同的输出?
本文关键字:输出 执行 代码 为什么 | 更新日期: 2023-09-27 18:07:00
class Program
{
public static void ThreadMainMethod()
{
for(int i=0;i<10;i++)
{
Console.WriteLine("Thread Proc{0}",i);
Thread.Sleep(0);
}
}
static void Main(string[] args)
{
Thread t = new Thread(new ThreadStart(ThreadMainMethod));
t.Start();
for(int i=0;i<4;i++)
{
Console.WriteLine("From Main Thread");
Thread.Sleep(0);
}
t.Join();
}
您的代码没有定义应该运行的顺序。你有四个计数线程,每个线程完全独立运行。Windows将按照它的调度程序决定的顺序运行线程——这将受到系统中其他进程的影响。
如果你不同步你的线程,就不能保证它们运行的顺序。