要求 :使用线程实现按照顺序打印 如下样式:直到字母打印到Z为止 A 1 B 2 C 3 线程与互斥锁的应用

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)状态。

猜你喜欢

转载自blog.csdn.net/antian1991/article/details/80374684