多任务与多线程

来源:互联网 发布:什么叫历史影视剧 知乎 编辑:程序博客网 时间:2024/06/05 18:02

前言

前段时间,我们部门组织了学习Linux系统的安装与命令学习
Linux系统是UNIX操作系统的克隆版,是Unix的开源实现,即是一个多使用者,多任务,多层次,多线程的操作系统。对于这个概念,有好多不理解的概念,首先就是多任务与多线程,那么到底什么是多任务与多线程呢?通过各种查阅,下面说一下我的简单理解。

多任务

多任务指的是一台电脑上可同时运行多个应用程序(也叫多个进程),是一种多个任务共享处理资源(如CPU)的方法。

只有在多操作系统上才能执行多任务操作,那什么才是多操作系统呢?在这里先不充一下单核和多核的区别。

单核与多核

单核就是CPU集成了一个运算核心,电脑的所有运行都是由这一个核来完成的,即同一时间只能完成一项任务。
多核就是CPU集成了多个运算核心,可以同一时间可以完成多个任务,将任务分配给不同的核同时进行,相对于单核来说,多核处理任务的时间就会更短。

单核是支持多任务操作系统的,但并不是真正的并发执行,就像我们不能吃饭和唱歌同时进行一样,但是我们可以在一小段时间内先吃饭在唱歌,再吃饭再唱歌,这样在一个固定的时间段内就实现了边吃饭边唱歌这件事情。单核处理的情况和这个类似,他通过多任务通过调度(Scheduling)哪一项任务在哪一时刻运行以及何时切换到另一项任务,从而实现了多任务操作。
多核也是支持多任务操作系统的,并且实现了真正的并发执行,针对不同的任务,多个计算引擎独立地工作.

多线程

多线程是将多任务的思想拓展到应用,因此,您可以将单个任务中的特定步骤进一步分解成一个个小任务,再将这些任务分配给不同的CPU内核(对于单核的CPU只要进行每个任务在短时间内的切换),每个任务可以并行运行,即多个线程并行的运行。举个例子,一个进程做整数1,2,3,。。N连续相加,可以用一个线程(一个cpu内核)做奇数的加法,另一个线程(另一个cpu内核)做偶数的加法,这样整个进程的速度会提高2倍。

以上只是经过百度后的简单个人理解,可能存在不准确的地方,有什么问题欢迎一起讨论。下面在附一张导图

这里写图片描述

原创粉丝点击