京东网站的公司全名,加载wordpress外部文件,提高网站响应速度,伊犁州新源县地图高清版目录
一.Python 线程事件 Event 函数介绍二.Python 线程事件 Event 原理三.Python 线程事件 Event 使用四.重点总结五.猜你喜欢
零基础 Python 学习路线推荐 : Python 学习目录 Python 基础入门
在 Python 项目开发中#xff0c;线程 thread 使用是比较常见的 Python 基础入门
在 Python 项目开发中线程 thread 使用是比较常见的在前面的文章中我们介绍了 Python 线程的创建 以及 线程互斥锁 Lock 今天还要额外介绍一个与线程相关的内容 –事件 Event 。
一.Python 线程事件 Event 函数介绍
set — 全局内置标志 Flag将标志 Flag 设置为 True,通知在等待状态 ( wait ) 的线程恢复运行;isSet — 获取标志 Flag 当前状态返回 True 或者 False ;wait — 一旦调用线程将会处于阻塞状态直到等待其他线程调用 set 函数恢复运行;clear — 将标志设置为 False
二.Python 线程事件 Event 原理
事件 event 中有一个全局内置标志 Flag值为 True 或者 False。使用 wait 函数的线程会处于阻塞状态,此时 Flag 指为 False直到有其他线程调用 set 函数让全局标志 Flag 置为 True 其阻塞的线程立刻恢复运行还可以用 isSet 函数检查当前的 Flag 状态.
三.Python 线程事件 Event 使用
假如有这样一个场景有 10 个单身狗对面 100 米有 10 个美女同时起跑一人一个自由选择先到先得……
# !usr/bin/env python
# -*- coding:utf-8 _*-Author:猿说编程
Blog(个人博客地址): www.codersrc.com
File:Python 线程事件 Event.py
Time:2021/05/04 07:37
Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累# 导入线程模块
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(targetget_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.....
程序结束四.重点总结
注意互斥锁 Lock 与事件 Event 区别需求不同使用方式也不同
互斥锁 Lock 主要针对多个线程同时操作同一个数据使用互斥锁可以保证数据正常修改或者访问事件 Event 主要用于唤醒正在阻塞等待状态的线程;
五.猜你喜欢
Python 条件推导式Python 列表推导式Python 字典推导式Python 函数声明和调用Python 不定长参数 *argc/**kargcsPython 匿名函数 lambdaPython return 逻辑判断表达式Python 字符串/列表/元组/字典之间的相互转换Python 局部变量和全局变量Python type 函数和 isinstance 函数区别Python is 和 区别Python 可变数据类型和不可变数据类型Python 浅拷贝和深拷贝Python 文件读写操作Python 异常处理Python 模块 importPython __name__ ‘__main__’详细解释
未经允许不得转载猿说编程 » Python 线程事件 Event