首页 > 试题广场 >

Python锁

锁(Lock)是 python 提供的对线程控制的对象
有互斥锁、可重入锁、死锁
发表于 2019-07-02 19:08:15 回复(0)
锁有两种状态——锁定和未锁定。

使用 Thread 对象的 Lock Rlock 可以实现简单的线程同步,这两个对象都有 acquire 方法和 release 方法,对于那些需要每次只允许一个线程操作的数据,可以将其操作放到 acquire release 方法之间。

发表于 2020-09-12 15:58:22 回复(0)
个人认为,python中常用的两种锁:互斥锁和GIL全局解释器锁。
互斥锁使用在多线程中,常用于避免对于全局变量使用时的资源竞争的问题,使用资源时上锁,不使用时解锁供其他线程使用;
GIL全局解释器锁经常出现在C语言编写的python解释器中,对于该条件下运行的多线程,不是真正的多线程(单核下运行),需要更换其他语言的解释器或者利用python胶水语言的特性,关键代码使用其他语言编写
锁引申的其他问题-死锁:对于锁的使用,陷入了嵌套调用造成的死循环导致的死锁,注意银行家算法
发表于 2019-08-17 00:15:25 回复(0)