import threading
lock=threading.Lock() #创建一个线程锁
num=100
def run(name):
lock.acquire() #设置锁
global num #global全局变量的意思、这里就是设置num这个变量为全局变量、#如果变量不在函数主体内、一定要设变量为全局变量
num=num-1 #函数主体、也就是run这个函数的值是NUM-1
print('线程',num,'执行了,目前NUM的值为:',num)
lock.release() #释放锁
for i in range(100):
t=threading.Thread(target=run,args=(i+1,)) #这里面的target目标必须是可调用的函数、只能run,而不能run(),srgs这里是参数name的值
t.start()
#全局解释器锁(GIL)
#GIL不管系统CPU核心数量是多少,都只能保证pyton程序中同一个时间点只能执行一个线程
#使用多进程解决GIL所造成的问题
python中线程锁(Lock)的应用、全球变量(global)、设置锁acquire()、释放锁release()、目标(target=函数,args=(参数,))
最新推荐文章于 2024-04-10 07:56:26 发布