1.GIL
全局解释器锁 只在Cpython解释器中
由于Cpython内存管理不是线程安全的!
2.内存管理>>>垃圾回收机制
1.引用计数
2.标记清除
3.分代回收
3.同一进程下的多个线程在同一时刻只能有一个线程被执行
4.线程是直接能够被cpu执行吗?
必须先抢解释器才能被cpu执行
5.GIL是加在Cpython解释器上的一把锁,并不能保证数据的安全
如果你想保证数据的安全,就必须加不同的锁
6.GIL与普通的互斥锁的区别
7.死锁与递归锁
即便你记住了没acquire一次就release一次的操作,也会产生死锁现象
递归锁:可以连续的acquire(),每acquire()一次计数加一
8.信号量
如果把互斥锁比喻成独立卫生间,那么信号量就相当于多个卫生间
9.event事件
event = Event()
event.set() # 告诉另外一个子线程 你可以运行了
event.wait() # 等待别人给我发set()信号
10.线程q
消息队列
普通的q 队列 先进先出
LIFO 堆栈 先进后出
优先级q q.put((数字,数据)) 数字越小优先级越高