要求 :使用線程實現按照順序打印 如下樣式:直到字母打印到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)狀態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章