python之路 :线程锁

线程锁:

            当多个线程同时进行任务时,为保证不会有多个线程对同一个数据进行操作造成不可预料的后果,加个锁,将此时的线         程变为单线程进行操作。

threading_Lock()

四个状态:1、获取锁、上锁:acquire()

                 2、等待:wait()

                 3、解锁:release()

                 4、唤醒、唤醒全部:notify()notify_all()

            当多个线程同时执行lock.acquire时,只有一个线程能成功地获取锁,然后继续执行代码,其他线程就继续等待直到获得      锁为止。

            获得锁的线程用完后一定要释放锁,否则那些苦苦等待锁的线程将永远等待下去,成为死线程。

线程锁的好处与坏处:

                好处:确保了某一段断码只能有一个线程从头到尾完整的执行。

                坏处:首先是阻止了多线程的多发执行,包含锁的某段代码实际上只能以单线程模式执行,效率就大大的降低。

                          其次由于可以存在多个锁,不同线程存在不同的锁,并试图获取对方持有的锁时,可能会造成锁死,导致多个                            线程全部挂起,既不能执行也不能结束,只能靠操作系统强制终止。



你可能感兴趣的:(从开始到放弃)