1、threading模块中定义了Lock类,可以实现锁
创建锁对象: 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)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)