# 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()

 

posted on 2019-07-14 12:09  天0涯  阅读(166)  评论(0编辑  收藏  举报