进程
对于操作系统来说,一个任务就是一个进程process,进程内的子任务称为线程thread,一个进程至少有一个线程
os.fork(),创建子进程
multiprocessing跨平台的多进程模块
start(),启动
join(),等待子进程结束,再继续往下执行,通常用于进程间同步
Pool,进程池
subprocess,子进程,启动外部进程
Queue,Pipes,进程间通信
线程
多线程
- _thread 低级模块
- threading高级模块,对_thread进行封装
t = threading.Thread(target="xxx", name="xxx")
t.start()
t.join()
Lock锁
lock = threading.Lock()
lock.acquire()
lock.release()
解释器执行代码时,有一个GIL全局锁,多线程在python中只能交替进行,使用CPU的一个核心,可以用多进程实现使用多核心,进程有独立的GIL锁
ThreadLocal
local = threading.local()
全局变量,每个线程都只能读写自己线程的独立副本