教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

问答>python+大数据开发>求解:Python里面的死锁是什么?什么情况下会遇到模块gevent下切换?

求解:Python里面的死锁是什么?什么情况下会遇到模块gevent下切换?

来源传智教育2022年03月17日 14时45分46秒

  死锁相当于就是若干子线程在系统资源竞争时,都在等待对方对某部分资源解除占用状态,结果是谁也不愿先解锁,互相干等着,程序无法执行下去,这就是死锁。

      这个概念在线程和协程里用的比较多,当遇到多线程的时候,Python程序员往往使用协程技术来进行替代,因为协程更加轻量级,系统决定进程与线程之间的切换,协程主要是靠我们程序员自己决定,而模块gevent下切换是遇到了耗时操作才会切换。

  GIL锁:

  全局解释器锁(只在cpython 里才有)

  作用:限制多线程同时执行,保证同一时间只有一个线程执行,所以cpython 里的多线程其实是伪多线程!

  三者的关系:进程里有线程,线程里有协程。

和我们在线交谈!