Python学习笔记之python进程和线程

/ 0评 / 0

进程

对于操作系统来说,一个任务就是一个进程process,进程内的子任务称为线程thread,一个进程至少有一个线程

os.fork(),创建子进程
multiprocessing跨平台的多进程模块
start(),启动
join(),等待子进程结束,再继续往下执行,通常用于进程间同步
Pool,进程池
subprocess,子进程,启动外部进程
Queue,Pipes,进程间通信

线程

多线程

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()

全局变量,每个线程都只能读写自己线程的独立副本