互斥锁
1、lock=threading.Lock() 只允许一个线程运行
2、semaphore=threading.BoundedSemaphore(5) 最多允许同时运行5个进程
def test():
# 在子线程中使用锁
lock.acquire()
print()
lock.release()
semaphore.acquire()
print()
semaphore.release()
lock=threading.Lock() #只允许一个线程运行
semaphore=threading.BoundedSemaphore(5) # 最多允许同时运行5个进程
t1=threading.Thread(target=teat)
event
多线程event的作用:一个子线程中设置event状态,另一个子线程判断event状态来控制该子线程是否堵塞
event.set()和event.clear()控制event状态
event.is_set()判断event状态,如果处于event.clear()状态,子线程设置堵塞event.wait
守护线程
设置守护线程之后,当主线程结束时,子线程也将立即结束,不再执行。
为了让设置了守护线程的子线程完全执行需要加上join()让主线程等待子线程执行结束
t=threading.Thread(target=test)
t.setDaemon(True) #把子进程设置为守护线程,必须在start()之前设置
t.start()
t.join()