标签:spl print 分享 threading from main ESS process 递归
互斥锁和排斥锁 同一时间只能有一个线程处理同一段代码。比如,只有一个坑的卫生间
信号量:同时最多可以有N个线程同时处理同一段代码。 比如有3个坑的卫生间,最多可以有三个人同时使用。
from threading import Semaphore from threading import Thread import time def task(name): sm.acquire() print(‘%s 正在占坑。。。‘ % name) time.sleep(2) sm.release() if __name__ == ‘__main__‘: sm = Semaphore(3) # 有三个坑的锁 , 排斥锁和递归锁只有一个坑的锁 # t_1 = [] for i in range(10): t = Thread(target=task, args=(‘线程‘+str(i),)) # t_1.append(t1) t.start()
运行结果:
线程0 正在占坑。。。
线程1 正在占坑。。。
线程2 正在占坑。。。
线程3 正在占坑。。。
线程5 正在占坑。。。
线程4 正在占坑。。。
线程7 正在占坑。。。
线程8 正在占坑。。。
线程6 正在占坑。。。
线程9 正在占坑。。。
Process finished with exit code 0
标签:spl print 分享 threading from main ESS process 递归
原文地址:https://www.cnblogs.com/beallaliu/p/9191751.html