import time import threading #这一行代码在 Python 中创建了一个线程锁对象。线程锁是一种同步机制,用于防止多个线程同时访问或修改同一数据,从而避免出现竞态条件(race condition)。 Lock=threading.Lock() num=100#设定一个初始变量值为100,并共享其变量num # 初始化一个列表来保存线程对象 thread_list=[] def addNum(): global num #声明 num 是全局变量,这样函数内就可以修改其值 #上锁 Lock.acquire() t=num - 1#此时100-1 time.sleep(0.0001) num=t Lock.release() #放锁 #这里描述的是一个循环,它会创建并启动 100 个线程,每个线程都执行名为 addNum 的目标函数。 # addNum 是一个已经定义好的可执行函数,并且它的执行不会产生竞态条件或其他同步问题(也就是有上锁和放锁过程)。 for i in range(100): # 创建一个线程对象,目标函数是 addNum t=threading.Thread(target=addNum) # 启动线程 t.start() # 将线程对象添加到列表中以便后续管理(比如等待所有线程完成) thread_list.append(t) # 在所有线程启动后,通常还需要确保它们都已完成 # 可以通过遍历 thread_list 并对每个线程调用 join() 方法实现这一点 for t in thread_list: t.join() print('Result:',num)
多线程互斥锁简单示例
最新推荐文章于 2024-09-02 23:14:47 发布