美文网首页
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 进程互斥锁 Lock - Python零基础入门教

    目录 一.Python 线程互斥锁和进程互斥锁[#%E4%B8%80Python_%E7%BA%BF%E7%A8%...

  • python互斥锁

    互斥锁Lock 在 threading 包里面 互斥锁可以根据需要,架在自己的原子操作上面 互斥锁上锁后一定要记得...

  • Python GIL 机制

    Python GIL(Global Interpreter Lock) 解释器锁 GIL本质就是一把互斥锁,将并发...

  • 线程同步与互斥

    Linux--线程编程 多线程编程-互斥锁 线程同步与互斥 互斥锁 信号量 条件变量 互斥锁 互斥锁的基本使用...

  • Golang 锁的相关知识

    Golang锁分类:互斥锁(Mutex)、读写锁(RWMutex)。 互斥锁 在编写代码中引入了对象互斥锁的概念,...

  • iOS底层探索-多线程锁

    多线程的锁大致可分为两大类:互斥锁、自旋锁;也可以分为三类:互斥锁、自旋锁、读写锁。 一、互斥锁:互斥+同步(强调...

  • go-锁机制

    Golang中的锁机制主要包含互斥锁和读写锁 互斥锁 互斥锁是一种简单的加锁的方法来控制对共享资源的访问,互斥锁只...

  • 线程锁

    1.常见的锁包括:互斥锁,自旋锁。 2.互斥锁是指锁的类型,自旋锁是指锁的实现方式。 3.互斥锁:当上...

  • 算法:读写者问题

    锁解析 : RWMutex : 读-写互斥锁 WWMutex : 写-写互斥锁 WPriorityMutex =...

  • 可重入读写锁 ReentrantReadWriteLock

    读写锁分为读锁和写锁,多个线程获取读锁不互斥,读写锁、写写锁互斥。 输出

网友评论

      本文标题:python互斥锁

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