Python中线程的互斥锁

    互斥锁可以对共享数据进行锁定,保证同一时刻只有一个线程可以执行,对于加锁的部分,只有单线程的效果,,对于整体而言,还是多线程
    注意:互斥锁是多个线程一起去抢,抢到就先执行,没有抢到就继续等待,等锁使用完后释放,其他线程才可以去抢这个锁

    锁的创建:mutex = thread.Lock()
    上锁:mutex.acquire()
    释放锁:mutex.release()


    注意:使用互斥锁要避免死锁情况出现,死锁产生的原因就是没有及时或者在正确的位置释放锁
import threading
import time
num = 0
def sum_num1():
    """加锁"""
    mutex.acquire()
    for i in range(1000000):
        global num
        num += 1
    """释放锁"""
    # mutex.release()
    print("sum_num1:",num)

def sum_num2():
    """加锁"""
    mutex.acquire()
    for i in range(1000000):
        global num
        num += 1
    mutex.release()
    print("sum_num2:",num)

if  __name__ == '__main__':
    """创建锁"""
    mutex = threading.Lock()
    """创建线程对象并启动"""
    sum1_thread = threading.Thread(target=sum_num1)
    sum2_thread = threading.Thread(target=sum_num2)
    sum1_thread.start()
    sum2_thread.start()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顽固油渍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值