基于进程和基于线程的多任务处理的区别
多任务操作系统是一种操作系统,可让您感知同时运行的 2 个或更多任务/作业/进程。它通过在这些任务/作业/进程之间划分系统资源并在它们一遍又一遍地执行时在任务/作业/进程之间切换来做到这一点。 通常,CPU 一次只处理一个任务,但切换速度非常快,看起来 CPU 正在同时执行多个进程。 它们可以支持抢占式多任务处理,其中操作系统将时间分配给应用程序(几乎所有现代操作系统),或者支持协作多任务处理,其中操作系统等待程序交还控制权(Windows 3.x、Mac OS 9 和更早版本), 导致挂起和崩溃。 多任务处理也称为分时,是多道程序的逻辑扩展。
多任务编程有两种类型:
- 基于进程的多任务处理
- 基于线程的多任务处理
序号 | 基于流程的多任务处理 | 基于线程的多任务处理 |
---|---|---|
1 | 在基于进程的多任务中,可以同时运行两个或多个进程和程序。 | 在基于线程的多任务处理中,可以同时运行两个或多个线程。 |
2 | 在基于进程的多任务中,进程或程序是最小的单位。 | 在基于线程的多任务处理中,线程是最小的单元。 |
3 | 程序是一个更大的单元。 | 线程是一个较小的单元。 |
4 | 基于进程的多任务处理需要更多的开销。 | 基于线程的多任务处理需要较少的开销。 |
5 | 进程需要自己的地址空间。 | 线程共享相同的地址空间。 |
6 | 进程到进程通信是昂贵的。 | 线程到线程通信并不昂贵。 |
7 | 在这里,它无法在 CPU 的空闲时间内获得访问权限。 | 允许在 CPU 占用的空闲时间内获取访问权限。 |
8 | 比较重量级。 | 它比较轻巧。 |
9 | 具有更快的数据速率多任务处理。 | 具有更快的数据速率多任务处理。 |
10 | 示例: 一边听音乐一边上网,进程是音乐播放器和浏览器。 | 示例: 使用浏览器,可以浏览网页并同时下载文件。导航是一个线程,下载是另一个线程。同样在像 MS Word 这样的文字处理应用程序中,在一个线程中键入文本,而拼写检查器会在另一个线程中检查错误 |