from threading import Thread, Lock #打印大写字母 def print_upper(): for i in range(65, 91): if s1.acquire(): #使用chr()函数 print(chr(i)) s2.release() #打印数字 def print_digit(): for i in range(1, 27): if s2.acquire(): print(str(i)) s1.release() if __name__ == "__main__": #创建锁 s1 = Lock() s2 = Lock() #请求获取锁 s2.acquire() # s2.acquire() #创建线程 t1 = Thread(target=print_upper, name="大写字母") t2 = Thread(target=print_digit, name="数字") t1.start() t2.start() # A # 1 # B # 2 # C # 3 # D # 4 # E # 5 # F # 6 # G # 7 # H # 8 # I # 9 # J # 10 # K # 11 # L # 12 # M # 13 # N # 14 # O # 15 # P # 16 # Q # 17 # R # 18 # S # 19 # T # 20 # U # 21 # V # 22 # W # 23 # X # 24 # Y # 25 # Z # 26
互斥锁:
线程调度程序从处于同步阻塞状态的线程中选择一个来获得锁,并使得该线程进入运行(running)状态。