问答>python+大数据开发>求解:Python里面的死锁是什么?什么情况下会遇到模块gevent下切换?
求解:Python里面的死锁是什么?什么情况下会遇到模块gevent下切换?
来源传智教育2022年03月17日 14时45分46秒
死锁相当于就是若干子线程在系统资源竞争时,都在等待对方对某部分资源解除占用状态,结果是谁也不愿先解锁,互相干等着,程序无法执行下去,这就是死锁。
这个概念在线程和协程里用的比较多,当遇到多线程的时候,Python程序员往往使用协程技术来进行替代,因为协程更加轻量级,系统决定进程与线程之间的切换,协程主要是靠我们程序员自己决定,而模块gevent下切换是遇到了耗时操作才会切换。
GIL锁:
全局解释器锁(只在cpython 里才有)
作用:限制多线程同时执行,保证同一时间只有一个线程执行,所以cpython 里的多线程其实是伪多线程!
三者的关系:进程里有线程,线程里有协程。
最新问答
相关问答
- 2022年04月18日OneToOneField关系字段具体怎么使用?
- 2022年04月18日Django中的ForeignKey是定义什么的?
- 2022年04月15日Django中如何配置类属性?
- 2022年04月14日如何排除不需要在表单中出现的模型字段?
- 2022年04月14日求教:通用视图都有哪些分类?
- 2022年04月12日Znode的属性是什么样的?
- 2022年04月12日Zookeeper具有哪些特性?
- 2022年04月11日HDFS中想对目录进行删除怎么执行?
- 2022年04月11日Java中操作HDFS涉及哪些类?
- 2022年04月08日Zookeeper的Shell操作具体是怎样的?