并发编程
1.概述
(1)非并发
【1】程序由单个步骤序列组成
【2】包含独立子任务的程序执行性能低
(2)并发
【1】异步,高效
【2】分解子任务、简化流程与逻辑
(3)进程 process
【1】一个程序的执行实例
【2】每个进程都有自己的地址空间、内存、数据线及辅助数据
(4)线程 thread
【1】同一进程内,可被并行激活的控制流
【2】空想相同上下文(空间地址、数据结构)
【3】特点:便于信息共享和通信
【4】线程访问顺序差异会导致结果不一致(条件 race condition)
(5)python全局解释器锁
【1】Global Interpreter Lock
【2】Python代码有虚拟机(解释器主循环)控制
【3】主循环同时只能有一个控制线程执行