多线程理论———— threading
2021-06-30 11:04
阅读:354
线程锁
lock = threading.Lock() 创建锁对象
lock.acquire() 上锁
lock.release() 解锁
* 也可以通过with 上锁,上锁状态调用aquire会阻塞
python 线程的GIL问题(全局解释器锁)
python ---> 支持多线程 ---> 同步互斥 ---> 加锁 ---> 超级锁,给解释器加锁 ---> 解释器同一时刻只能解释一个线程
后果:
一个解释器同一时刻只能解释执行一个线程,所以导致python 线程效率低下。但是当遇到IO 阻塞时线程会主动让出解释器,因此python 线程更加适合高延迟的IO 程序并发
解决方法:
* 尽量用进程完成并发
* 不适用C 解释器
* 尽量使用多种方案组合的方式进行并发操作,线程用作高延迟IO
上一篇:Python_模块介绍
下一篇:Java集合框架浅析
评论
亲,登录后才可以留言!