跳至主要內容

并发

ClayPython约 600 字大约 2 分钟

并发

并发和并行区别

并行,parallel 同时做某些事,可以互不干扰的同一个时刻做几件事

并发,concurrency 也是同时做某些事,但是强调,一个时段内有事情要处理。

举例 高速公路的车道,双向4车道,所有车辆(数据)可以互不干扰的在自己的车道上奔跑(传输)。 在同一个时刻,每条车道上可能同时有车辆在跑,是同时发生的概念,这是并行。 在一段时间内,有这么多车要通过,这是并发。

并行不过是使用水平扩展方式解决并发的一种手段而已。

进程和线程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

进程和程序的关系:程序是源代码编译后的文件,而这些文件存放在磁盘上。当程序被操作系统加载到内存中,就是进程,进程中存放着指令和数据(资源)。一个程序的执行实例就是一个进程。它也是线程的容器。

Linux进程有父进程、子进程,Windows的进程是平等关系。

在实现了线程的操作系统中,线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。 一个标准的线程由线程ID,当前指令指针(PC)、寄存器集合和堆、栈组成。

在许多系统中,创建一个线程比创建一个进程快10-100倍。

进程、线程的理解

现代操作系统提出进程的概念,每一个进程都认为自己独占所有的计算机硬件资源。 进程就是独立的王国,进程间不可以随便的共享数据。 线程就是省份,同一个进程内的线程可以共享进程的资源,每一个线程拥有自己独立的堆栈。

python 中的进程和线程

运行程序会启动一个解释器进程,线程共享一个解释器进程。