Posts 线程与进程
Post
Cancel

线程与进程

线程与进程

线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。’’

简单来讲,线程是运算最小单元。

以下是个人理解

线程与进程之间的关系

首先想说进程和线程或者很多其他设计,都来自人对自然的模仿

进程与进程可以并行(分情况)

线程与线程可以并行(分情况)

进程包含线程-进程由多个线程组成

计算机与人类比

一个人一边吃东西(eat),一边听歌(listen),可以看作两个线程,并行运行(资源不同,是嘴巴与耳朵)

喝水(drink) 另一个线程

吃东西与听歌是两个线程同时运行,看作并行

吃东西与喝水这两个线程,却不能并行,他们需要相同资源(嘴巴),在计算机中也存在这种问题,多个任务存在需要相同资源的情况,这时候不存在并行情况,而是轮流使用唯一资源,暂且叫轮询吧。

这种情况下,是轮询使用资源,不是真正意义上的并行。

线程分类

线程分为CPU线程与用户线程

CPU线程

比如4核心CPU,那么CPU能够同时执行四个线程,并且能够并行运行(同时进行运算)

多核心CPU.png)

用户线程

间接使用CPU内核运算的线程,用户线程很多时候没有真正意义的并行

一个计算机其中一个内核,可能是1秒内,运算了2个不同的用户任务,这里可以看作是两个用户线程,实际是一个CPU内核线程实现

单核多任务运算.png

一般用户线程指的是图中的子线程,两个用户线程占用同一个内核资源的时候,不能真正意义的并行运算

This post is licensed under CC BY 4.0 by the author.

事务

课题面板

Comments powered by Disqus.