📜  基于进程和基于线程的多任务处理

📅  最后修改于: 2021-09-27 22:36:07             🧑  作者: Mango

先决条件——线程,多任务、多线程和多处理之间的区别
多任务操作系统是一种操作系统,可以让您感知同时运行 2 个或更多任务/作业/进程。它通过在这些任务/作业/进程之间划分系统资源并在任务/作业/进程反复执行时在它们之间切换来实现这一点。通常 CPU 一次只处理一个任务,但切换速度如此之快,以至于 CPU 一次执行多个进程。它们可以支持抢占式多任务处理(操作系统将时间分配给应用程序(几乎所有现代操作系统))或协作多任务处理(操作系统等待程序交还控制权)(Windows 3.x、Mac OS 9 及更早版本),领先挂起和崩溃。也称为分时,多任务是多道程序的逻辑扩展。

多任务编程有两种类型——

  1. 基于进程的多任务处理
  2. 基于线程的多任务处理。

基于进程的多任务编程——

  • 在基于进程的多任务中,两个或多个进程和程序可以同时运行。
  • 在基于进程的多任务中,进程或程序是最小的单元。
  • 程序是一个更大的单位。
  • 基于进程的多任务需要更多的开销。
  • 进程需要自己的地址空间。
  • 进程间通信是昂贵的。
  • 在这里,它无法在 CPU 空闲时间获得访问权限。
  • 它的重量比较重。
  • 它具有较慢的数据速率多任务处理。

示例 –我们可以同时听音乐和浏览互联网。本例中的进程是音乐播放器和浏览器。

基于线程的多任务编程——

  • 在基于线程的多任务处理中,可以同时运行两个或多个线程。
  • 在基于线程的多任务中,线程是最小的单元。
  • 线程是一个较小的单位。
  • 基于线程的多任务需要更少的开销。
  • 线程共享相同的地址空间。
  • 线程到线程通信并不昂贵。
  • 它允许在 CPU 占用的空闲时间内获取访问权限。
  • 它的重量相对较轻。
  • 它具有更快的数据速率多任务处理。

示例 –使用浏览器,我们可以浏览网页并同时下载文件。在这个例子中,导航是一个线程,下载是另一个线程。同样在像 MS Word 这样的文字处理应用程序中,我们可以在一个线程中键入文本,而拼写检查器可以在另一个线程中检查错误。