[英]Internally how does a thread work?
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");
}
内部线程如何工作? 意味着为什么每次运行时上述代码的输出都不固定,所以“ x”和“ y”的顺序不同?
所有多任务系统都有一个调度程序。 调度程序决定下一步将执行什么工作单元。 基本调度程序可以是运行高分辨率计时器的程序(例如,每100毫秒执行一次任务切换)。 显然,现代实现比这复杂得多。
也就是说,大多数现代线程实现都依赖于内核中的调度程序。 这些调度程序中有许多不是确定性的。 也就是说,不能保证上下文切换(即由调度程序管理的可运行实例之间的切换)将在任何特定时间发生。
您所看到的是该调度程序中系统的差异。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.