python使用锁访问共享变量实例解析
本文研究的主要是python使用锁访问共享变量,具体介绍和实现如下。 python 做多线程编程时,多个线程若同时访问某个变量,可能会对变量数据造成破坏,pyhon中的threading模块提供了lock对象,lock中的acquire方法用于获取一个锁,而release用于释放一个锁。当一个线程取得锁时,它变获得了共享变量的访问权,此时进入阻塞状态,若其它线程申请访问这个变量,则必须等到这个线程调用release方法释放这个锁。下面是python中使用锁的实例: #!/usr/bin/env python import threading,time q=threading.Lock() #create a lock object def mythread(): global a q.acquire() #acquire the lock a=threading.currentThread().getName() print "a is modified by",a q.release() #release the lock for i in range(1,4): t=threading.Thread(target=mythread,name="Thread %d"%i) t.start() 如果一个线程想多次获取资源访问权,在上面的程序中连续两次使用 #!/usr/bin/env python import threading,time q=threading.RLock() #create a lock object def mythread(): global a q.acquire() #acquire the lock a=threading.currentThread().getName() print "a is modified by",a q.acquire() a=threading.currentThread().getName() print "a is modified by %s the second time"% a q.release() q.release() #release the lock for i in range(1,name="Thread %d"%i) t.start() 总结以上就是本文关于python使用锁访问共享变量实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持! 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |