美文网首页
python互斥锁

python互斥锁

作者: Oo晨晨oO | 来源:发表于2017-07-21 11:03 被阅读56次

    互斥锁Lock 在 threading 包里面

    互斥锁可以根据需要,架在自己的原子操作上面

    互斥锁上锁后一定要记得释放

    语法:

    • acquire 上锁
    • release 解锁
    from threading import Thread, Lock
    
    g_num = 0
    
    def test1():
        global g_num
        for i in range(1000000):
            #上锁
            mutex.acquire()
            #多线程的不安全行为,原子操作
            g_num += 1
            #释放锁
            mutex.release()
        print("方法1完毕后 , g_num = %d"%g_num)
    
    
    def test2():
        global g_num 
        for i in range(1000000):
            #上锁
            mutex.acquire()
            #多线程的不安全行为,原子操作
            g_num += 1
            #释放锁
            mutex.release()
        print("方法2完毕后 , g_num = %d"%g_num)
    
    #创建一把互斥锁
    mutex = Lock()
    
    p1 = Thread(target = test1)
    p1.start()
    
    p2 = Thread(target = test2)
    p2.start()
    
    print("主线程执行到最后, g_num = %d"%g_num)
    
    
    

    执行结果:

    主线程执行到最后, g_num = 43237
    方法1完毕后 , g_num = 1857466
    方法2完毕后 , g_num = 2000000
    

    相关文章

      网友评论

          本文标题:python互斥锁

          本文链接:https://www.haomeiwen.com/subject/ougskxtx.html