多进程和多线程
全局解释器(Global Interpreter Lock ,缩写GIL)
是计算机程序设计语言解释器 用于同步线程的一种机制,它使得任何时刻仅有 一个线程 在执行,即便在 多核心处理器 上,使用GIL的解释器也只允许同一时间执行一个线程。
进程:一个可以独立允许的程序单位
eg: 打开EXCEL文件,这就开启了一个EXCEL进程
但是一个进程钟可以同时处理很多事情
eg: 在EXCEL文件,可以在多个选项卡中打开多个页面
进程就是线程的集合,进程就是由一个或多个线程构成的,线程是操作系统进行运算调度的最小单位,是进程中的一个最小运行单元。
并发:英文叫作 concurrency。它是指同一时刻只能有一条指令执行,但是多个线程的对应的指令被快速轮换地执行。
比如:一个处理器,它先执行线程 A 的指令一段时间,再执行线程 B 的指令一段时间,再切回到线程 A 执行一段时间。
由于处理器执行指令的速度和切换的速度非常非常快,人完全感知不到计算机在这个过程中有多个线程切换上下文执行的操作,这就使得宏观上看起来多个线程在同时运行。但微观上只是这个处理器在连续不断地在多个线程之间切换和执行,每个线程的执行一定会占用这个处理器一个时间片段,同一时刻,其实只有一个线程在执行。
并行:英文叫作 parallel。它是指同一时刻,有多条指令在多个处理器上同时执行,并行必须要依赖于多个处理器。不论是从宏观上还是微观上,多个线程都是在同一时刻一起执行的。
并行只能在多处理器系统中存在,如果我们的计算机处理器只有一个核,那就不可能实现并行。
而并发在单处理器和多处理器系统中都是可以存在的,因为仅靠一个核,就可以实现并发。
浙公网安备 33010602011771号