内部如何工作?

Jee*_*att 0 c# multithreading

Thread t = new Thread (WriteY);
t.Start();            
for (int i = 0; i < 1000; i++) Console.Write ("x");

static void WriteY()
{
    for (int i = 0; i < 1000; i++) Console.Write ("y");
} 
Run Code Online (Sandbox Code Playgroud)

内部线程如何工作?意味着为什么每次运行时上述代码的输出都没有修复,'x'和'y'的顺序是不同的?

Wil*_*ung 5

所有多任务系统都有一个调度程序.调度程序决定下一步将执行的工作单元.基本调度程序可以是运行高分辨率计时器的东西(例如,每100毫秒,一个任务切换发生).显然,现代实现要复杂得多.

也就是说,大多数现代线程实现都依赖于内核中的调度程序.许多这些调度程序都不具有确定性.也就是说,无法保证上下文切换(即调度程序管理的可运行实例之间的切换)将在任何特定时间发生.

您所看到的是您的系统调度程序中的差异.