多线程编程入门与实践
1. 多任务处理的发展
计算机能够进行多任务处理后,情况发生了巨大变化。像运行Unix操作系统的服务器计算机从一开始就具备多任务处理能力,而Windows操作系统直到Windows NT和Windows 95才实现了100%的抢占式多任务处理。这里提到的“抢占式”是一个关键概念,它与普通的多任务处理有很大区别。
普通的多任务处理是指各个任务相互协作,共同分配资源。这种方式本质上是一种没有前途的思路,Windows 3.0和Windows 3.1就是典型例子,它们存在很多漏洞。接下来,我们详细了解一下抢占式多任务处理。
2. 抢占式多任务处理
抢占式多任务处理是指操作系统控制应用程序的执行内容和时间。应用程序被视为组件,我们才能运行它们。例如,创建一个控制台应用程序,将 Main() 方法重命名为 Mains() ,就会发现 Main() 方法实际上是操作系统用于运行组件的API,这个组件伪装成了一个程序。
操作系统就像一个特殊的程序,它运行着被称为程序的组件。那么,多个程序如何同时运行呢?这是因为操作系统会利用微处理器的特殊功能,对各个程序进行时间切片。由于.NET程序是组件,它们无需直接访问微处理器。
3. 时间切片
时间切片是指操作系统规定程序的执行时间。在执行时间间隔内,程序处于冻结状态,不做任何操作。用户通常感觉不到时间切片,因为它的操作是以微秒为单位的,速度非常快,所以我们会认为程序在持续运行。
要观察时间切片的实际情况,可以打开Windows任务管理器
超级会员免费看
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



