立即学习:https://edu.csdn.net/course/play/24458/296447?utm_source=blogtoedu

threading.Event事件

1.概念及功能:主要是完成线程之间的通信,将另一个线程的运行状态通知给另一个线程

2.使用场景:

1)客户端运行时等待服务器启动连接,若等待时间过长或者尝试连接次数过多,提示连接失败。只有等服务器启动事件成功后,才会进行连接事件

3.Event的相关属性

1)Event.wait():表示等待,括号里面可以加上特定的等待时间

2)Event.set():给等待发送一个信号,等待着的线程就会继续运行

3)clear:Event默认是False,当被set后为Ture,clear可以使得其重新设置为False

4)is_set():判断事件是否已经被set

4.代码

from threading import Thread,Event,currentThread
import time#创建事件对象
event = Event()
#创建客户端函数模拟客户端连接
def client():n = 0#设置等待取消的条件函数,如果尝试连接的次数超过5次,则退出等待,因为event.wait的时间是0.5,最多等5次,需要2.5秒,而在server中沉睡了5秒,因此会等不到event.set()的执行就退出等待while not event.is_set():if n == 5:print('%s is failed to connect the server')returnn += 1#这里需要注意return和break的区别,break只是跳出循环,而return是跳出函数,如果用break会使得返回连接成功的信息print('%s is trying to connect......'%currentThread().getName())print('*'*20,'%s第%s次尝试连接'%(currentThread().getName(),n),'*'*20)event.wait(0.5)#等待事件的发生,等待set#print('%s is connected'%currentThread().getName())#创建服务端函数模拟服务器
def server():print("%s is trying to start"%currentThread().getName())time.sleep(3)event.set()if __name__ == '__main__':for i in range(3):c = Thread(target=client)c.start()s = Thread(target=server)s.start()

学习笔记(30):Python网络编程并发编程-Event事件相关推荐

  1. 学习笔记(19):Python网络编程并发编程-互斥锁

    立即学习:https://edu.csdn.net/course/play/24458/296430?utm_source=blogtoedu 1.互斥锁: 多进程间的内存是相互隔离的,因此其数据也是 ...

  2. 学习笔记(34):Python网络编程并发编程-异步调用与回调机制

    立即学习:https://edu.csdn.net/course/play/24458/296452?utm_source=blogtoedu 1.知识点:(详细见代码注释) 1)同步调用: res1 ...

  3. 学习笔记(33):Python网络编程并发编程-进程池线程池

    立即学习:https://edu.csdn.net/course/play/24458/296451?utm_source=blogtoedu 进程池与线程池: 一般应用在网站上,进程池或线程池最大的 ...

  4. 学习笔记(28):Python网络编程并发编程-死锁与递归锁

    立即学习:https://edu.csdn.net/course/play/24458/296445?utm_source=blogtoedu 1.死锁(Lock()的局限性) 知识点:Lock()只 ...

  5. 学习笔记(18):Python网络编程并发编程-守护进程

    立即学习:https://edu.csdn.net/course/play/24458/296429?utm_source=blogtoedu 守护进程(了解) 1.概念:守护进程是主进程在创建子进程 ...

  6. 学习笔记(09):Python网络编程并发编程-模拟ssh远程执行命令-代码实现

    立即学习:https://edu.csdn.net/course/play/24458/296239?utm_source=blogtoedu 1.服务器端:接收客户端发送的命令,subprocess ...

  7. 学习笔记(08):Python网络编程并发编程-实现服务端可以对多个客户端提供服务

    立即学习:https://edu.csdn.net/course/play/24458/296237?utm_source=blogtoedu 链接循环,一个服务器服务多个客户端, 思路1:服务器一个 ...

  8. Python网络与并发编程 10 threading模块线程锁

    前言 本章节将继续围绕threading模块讲解,基本上是纯理论偏多. 对于日常开发者来讲很少会使用到本章节的内容,但是对框架作者等是必备知识,同时也是高频的面试常见问题. 官方文档 线程安全 线程安 ...

  9. python 网页爬虫作业调度_第3次作业-MOOC学习笔记:Python网络爬虫与信息提取

    1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业. 4.提供图片或网站显示的学习 ...

最新文章

  1. Linux内核探讨-- 第七章
  2. NGINX Plus 提供的在线活动监控功能
  3. oracle 用函数返回对象集合
  4. nslang oracle_解决ojdbc14连接oracle报“java.sql.SQLException: Io 异常: Size Data Unit (SDU) mismatch”异常问题...
  5. C++语法细节注意集锦
  6. leetcode22. 括号生成
  7. Kinect for Windows SDK开发初体验(二)操作Camera
  8. 如何安装 Microsoft Office 兼容包,以便您可以在早期版本的 Microsoft Office 中打开和保存 Office Open XML 格式...
  9. GIS(地理信息系统)名词解释大全(考研)
  10. Linux 下安装和配置 MinDoc
  11. 周杰伦新专辑预售热点传播渠道分析
  12. 热爱可抵岁月漫长,温柔可挡艰难时光—2020年终总结
  13. Java小游戏学习笔记
  14. 经济危机下的国际名牌
  15. 在线图片批量压缩工具
  16. 闭关修炼30天,“啃透”这658页PDF,成功定级阿里P7
  17. PMPBOK6之项目管理的33个文件
  18. 北师大听讲座-李玫瑾教授-犯罪心理实案点评
  19. 分享:SET“红绳”悬吊运动训练的基本概念
  20. 北京工业大学计算机科学与技术考研真题,北京工业大学计算机科学与技术2022考研经验...

热门文章

  1. initWithNibName与viewDidLoad的执行关系以及顺序
  2. jquery实战--定宽
  3. 文件 图片 上传 及少许正则校验
  4. 错误: 找不到或无法加载主类 com.leyou.LeyouItemApplication Process finished with exit code 1...
  5. leetcode-114. Flatten Binary Tree to Linked List
  6. 从客户端(CourseIssueContent=P财务审计师岗位认证招生简章BR...)中检测到有潜在危险的 Request.Form 值。...
  7. jprofiler_windows-x64_9_1注册码
  8. Android Download Manager用法大全
  9. 对象关系映射(ORM)及代码生成器和插件C#源码(DBFrameworkV4.5.3)
  10. 看完这篇文章保你面试稳操胜券——基础篇(html/css)