线程
概念:程序执行的最小单元,依赖于进程
特点:
- 程序运行起来,就给它创建了一个主线程,等待子线程结束后再结束
- 共享全局变量,通过args参数给线程传递数据
- 从系统开销讲,进程>线程>协程
创建:threading模块Thread类创建一个对象
代码:
import threading
t = threading.Thread(target = 函数名,args=参数)
t.start()
互斥锁
- 解决多线程共享全局变量时资源竞争问题所引入的锁机制
创建:threading模块Lock类创建一个对象
Import threading
mutex = threading.Lock() #创建锁
mutex.acquire() #上锁(阻塞)
mutex.release() #解锁(解阻塞)
死锁
- 如果两个线程同时等待对方资源就会死锁
- 1,程序设计的时候避免
- 2,超时时间
- 3,银行家算法
主线程会等待全部子线程结束后在结束
enumerate查看线程数