并发与并行
>>>计算机执行指令示意图
>>>轮询调度实现并发执行(前提: 一个CPU)
并发:看上去一起执行,同时在发生
并行:真正一起执行,同时在进行
并行需要的核心条件
并行真正的核心条件是有多个CPU
>>> 并发是指,程序在运行的过程中存在多于一个的执行上下文。这些执行上下文一般对应着不同的调用栈。
在单处理器上,并发程序虽然有多个上下文运行环境,但某一个时刻只有一个任务在运行。
但在多处理器上,因为有了多个执行单元,就可以同时有数个任务在跑。
>>>这种物理上同一时刻有多个任务同时运行的方式就是并行。
和并发相比,并行更加强调多个任务同时在运行。
而且并行还有一个层次问题,比如是指令间的并行还是任务间的并行。
进程
>>>计算机程序是存储在磁盘上的可执行二进制(或其他类型)文件。
>>>只有把它们加载到内存中,并被操作系统调用它们才会拥有其自己的生命周期。
进程则是表示的一个正在执行的程序。
>>>每个进程都拥有自己的地址空间、内存、数据栈以及其他用于跟踪执行的辅助数据。
操作系统负责其上所有进程的执行。
操作系统会为这些进程合理地分配执行时间。
在Python中直接执行耗时函数
# 表示一个很耗时的子任务
>>>def func():
# 在子任务中模拟“耗时任务”或“阻塞任务”
>>>time.sleep(5)
# 在主任务中,首先开启 fun() 这个任务
>>>func()
在Python中使用进程来分担耗时任务
Python进程 使用流程