# !usr/bin/env python
# -*- coding:utf-8 _*-
# 导入线程模块
import threading
# 创建event事件
eEvent = threading.Event()
def get_girl_friend(id):
print(
"单身狗{}都准备完毕,内置Flag状态:{}....."
.format(id,eEvent.isSet()))
eEvent.wait()
print(
"单身狗%d告别单身....."
%id)
if
__name__ ==
"__main__"
:
thread_list = list()
for
i
in
range(1,11):
# 创建并初始化线程
t = threading.Thread(target=get_girl_friend,args=(i,))
# 启动线程
t.start()
# 将线程句柄添加list列表中
thread_list.append(t)
# 所有线程准备完毕,将event内置Flag设置为True,恢复正在阻塞的线程
eEvent.set()
# 遍历列表,阻塞主线程
for
t
in
thread_list:
# 阻塞主线程,等待所有子线程结束
t.join()
print(
"程序结束!"
)
''
'
输出结果:
单身狗1都准备完毕,内置Flag状态:False.....
单身狗2都准备完毕,内置Flag状态:False.....
单身狗3都准备完毕,内置Flag状态:False.....
单身狗4都准备完毕,内置Flag状态:False.....
单身狗5都准备完毕,内置Flag状态:False.....
单身狗6都准备完毕,内置Flag状态:False.....
单身狗7都准备完毕,内置Flag状态:False.....
单身狗8都准备完毕,内置Flag状态:False.....
单身狗9都准备完毕,内置Flag状态:False.....
单身狗10都准备完毕,内置Flag状态:False.....
单身狗5告别单身,内置Flag状态:True.....
单身狗6告别单身,内置Flag状态:True.....
单身狗7告别单身,内置Flag状态:True.....
单身狗1告别单身,内置Flag状态:True.....
单身狗8告别单身,内置Flag状态:True.....
单身狗10告别单身,内置Flag状态:True.....
单身狗4告别单身,内置Flag状态:True.....
单身狗9告别单身,内置Flag状态:True.....
单身狗3告别单身,内置Flag状态:True.....
单身狗2告别单身,内置Flag状态:True.....
程序结束!
'
''