1、Lock类定义在threading模块中,可以实现锁定
创建锁对象: mutex = threading.Lock()
上锁: mutex.acquire()
释放锁: mutex.release()
2、注意
如果锁以前没有锁,那么acquire就不会堵塞
如果这个锁在调用acquire之前被其他线程锁定,那么acquire就会被堵塞,直到锁被释放
3、实例
importthreading importtime num=0 defcount_test1(): globalnum foriinrange(100000): mutex.acquire() num+=1 mutex.release() print("count_test1-->num:%s"%num) defcount_test2(): globalnum foriinrange(100000): mutex.acquire() num+=1 mutex.release() print("count_test2-->num:%s"%num) mutex=threading.Lock() t1=threading.Thread(target=count_test1) t2=threading.Thread(target=count_test2) t1.start() t2.start() t1.join() t2.join() print("最后的num:%s"%num)
以上是python使用互斥锁处理资源分配,希望对大家有所帮助,python学习网了解更多知识。