协程&互斥锁

test.py 协程加互斥锁

import threading
import time

x = 100

# 定义锁
lock = threading.Lock()

def sub():
    # 加锁
    lock.acquire()
    global x
    temp = x - 1
    time.sleep(0.05)
    x = temp
    # 释放锁
    lock.release()

t_list = []
for i in range(100):
    # 协程并发
    t = threading.Thread(target=sub)
    t.start()
    t_list.append(t)

for i in t_list:
    # 阻塞
    t.join()


print(x)

Last updated