# THREAD 线程
t = threading.Thread(target=test,args=('test',)) t.setDaemon(True)#t设为守护线程,在主线程生命周期结束时结束,主线程会在其他非守护线程结束后结束,并且需要在启动前设置 t.start()#启动线程 t.join(10)#主线程等待子线程(t)执行10s(缺少则是线程结束)后执行 t.setName('test')#设置线程名称 threading.currentThread()#获取当前线程 threading.enumerate()#枚举当前所有活跃线程
# LOCK 互斥锁 (主要用于同步块同步)
lock = threading.Lock() lock.acquire()#获取锁 #同步块 lock.release()#释放锁
# EVENT 同步对象(主要用于等待其他线程通知执行时执行)
event = threading.Event() event.set() #线程中设置标识符为True event.wait()#线程中等待标识符为True时执行 event.clear()#线程中设置标识符为False
# 同步块信号量
''' 每当调用acquire()时,内置计数器-1 每当调用release()时,内置计数器+1 计数器不能小于0,当计数器为0时,acquire()将阻塞线程直到其他线程调用release()。 ''' semaphore = threading.Semaphore(5) semaphore.acquire() # 同步块 semaphore.release()