栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python中线程的互斥锁

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/835725.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号