加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python Rlock实现线程同步

发布时间:2020-12-20 10:40:57 所属栏目:Python 来源:网络整理
导读:import threadingmylock = threading.RLock();num = 0 class myThread(threading.Thread): def __init__ (self,name): threading.Thread. __init__ (self,name= name) def run(self): global num while True: mylock.acquire() print ( ‘ %s locked,Number:
import threading

mylock = threading.RLock();
num = 0


class myThread(threading.Thread):
    def __init__(self,name):
        threading.Thread.__init__(self,name=name)

    def run(self):
        global num
        while True:
            mylock.acquire()
            print(%s locked,Number: %d % (threading.current_thread().name,num))
            if num >= 4:
                mylock.release()
                print(%s released,num))
                break
            num += 1
            print(%s released,num))
            mylock.release()


if __name__ == __main__:
    thread1 = myThread(Thread_1)
    thread2 = myThread(Thread_2)
    thread1.start()
    thread2.start()

如果多个线程共同对某个数据修改,则可能岀现不可预料的结果,为了保的正确性,需要对多个线程进行同步。使用 Thread对象的Lock和RLock可以实现简单的线程同步。.这两个对象都有acquire方法和relate方法,对于那些每次只允许一个线程操作的数据,可以将其操作放到acquire和release方法之间。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读