OS中多任务和多线程之间的区别
作者:
Laura McKinney
创建日期:
1 四月 2021
更新日期:
8 可能 2024
内容
在本文中,我们将讨论多任务处理和多线程处理之间的区别。人们通常会对这些术语感到困惑。一方面, 多任务 是多程序设计的逻辑扩展,另一方面, 多线程 是基于线程的多任务处理。多任务和多线程之间的基本区别是 多任务 允许CPU同时执行多个任务(程序,进程,任务,线程),而 多线程 允许同一进程的多个线程同时执行。让我们借助下面显示的比较表来讨论多任务处理和多线程处理之间的区别。
- 比较表
- 定义
- 关键差异
- 结论
比较表
比较基础 | 多任务 | 多线程 |
---|---|---|
基本的 | 多任务处理使CPU可以同时执行多个任务。 | 多线程使CPU可以同时执行一个进程的多个线程。 |
交换 | 在多任务处理中,CPU经常在程序之间切换。 | 在多线程中,CPU经常在线程之间切换。 |
内存和资源 | 在多任务系统中,必须为CPU正在执行的每个程序分配单独的内存和资源。 | 在多线程系统必须为一个进程分配内存的情况下,该进程的多个线程共享相同的内存和分配给该进程的资源。 |
多任务的定义
多任务是指单个CPU执行 几个任务(程序,流程,任务,线程) 与此同时。为了执行多任务处理,CPU非常在这些任务之间切换 经常 这样用户可以同时与每个程序进行交互。
在多任务操作系统中,多个用户可以 共享系统 同时。正如我们看到的那样,CPU在任务之间快速切换,因此从一个用户切换到下一个用户只需要一点时间。这给用户留下了整个计算机系统专用于他的印象。
当多个用户共享一个多任务操作系统时,CPU 排程 和 多程序 这样,每个用户就有可能至少拥有一小部分多任务OS,并使每个用户在内存中至少有一个程序可以执行。
多线程的定义
多线程与多任务的不同之处在于,多任务允许同时执行多个任务,而多线程允许 单个任务的多个线程 (程序,过程)要同时由CPU处理。
在研究多线程之前,让我们谈谈 什么是线程? 一种 线 是一个基本执行单元,它具有 自己的程序计数器,寄存器组,堆栈 但它共享其所属进程的代码,数据和文件。一个进程可以同时具有多个线程,并且 CPU开关 在这些线程中,经常使用户感到所有线程都在同时运行,这称为多线程。
多线程增加了 反应性 这是因为,如果应用程序的一个线程没有响应,则另一个线程将以这种方式响应,用户将不必闲置。多线程允许 资源共享 因为属于同一个进程的线程可以共享该进程的代码和数据,并且它允许一个进程同时具有多个处于活动状态的线程 相同的地址空间.由于系统必须为每个进程分配不同的内存和资源,因此创建另一个进程的成本较高,但是创建线程很容易,因为它不需要为同一进程的线程分配单独的内存和资源。
- 多任务和多线程之间的基本区别在于 多任务,系统允许同时执行多个程序和任务,而在 多线程,系统会同时执行相同或不同进程的多个线程。
- 在多任务处理中 中央处理器 不得不 开关 之间 多个程序 这样看来,多个程序正在同时运行。另一方面,在多线程中 中央处理器 不得不 开关 之间 多线程 使所有线程同时运行。
- 多任务分配 单独的内存和资源 对于每个进程/程序,而在属于同一进程的多线程线程中 共享相同的内存和资源 和过程一样
结论:
多任务类似于多编程,而多线程是基于线程的多任务。多线程比多任务要便宜,因为线程易于创建,然后易于创建进程。