"""    ----线程事件----

    是用于协调多个线程工作的,当一个线程要执行某个操作,需要获取另一个线程的状态    你要给别人打电话 必须明确知道对方手机买好了    作为客户端 要连接服务器 必须明确服务器已经启动了,那么作为启动服务器的一方 如何告知客户端?    就通过事件"""
import time
from threading import Thread
from threading import Event# 用Event创建一个事件
e = Event()  # 默认Falsedef start():print("正在启动服务器......")time.sleep(5)print("服务器启动成功!")e.set()  # 就是把事件的值设置为Truedef connect():# 重试3次for i in range(3):print("等待服务器启动....")# 设置等待时间e.wait(2)  # 会阻塞 直到对方把事件设置为True# 判断Event 是否可以执行if e.isSet():print("连接成功!")breakelse:print("连接失败")else:  # 如果3次都没成功 就打印这个消息print("服务器没有启动")Thread(target=start).start()
Thread(target=connect).start()

转载于:https://www.cnblogs.com/wenchen/p/10221211.html

线程事件--day36相关推荐

  1. Python 线程----线程方法,线程事件,线程队列,线程池,GIL锁,协程,Greenlet

    主要内容: 线程的一些其他方法 线程事件 线程队列 线程池 GIL锁 协程 Greenlet Gevent 一. 线程(threading)的一些其他方法 from threading import ...

  2. Python 线程事件 Event - Python零基础入门教程

    目录 一.Python 线程事件 Event 函数介绍 二.Python 线程事件 Event 原理 三.Python 线程事件 Event 使用 四.重点总结 五.猜你喜欢 零基础 Python 学 ...

  3. java 线程 事件_Java事件调度线程解释

    我最近开始学习和探索Java编程的基础知识. 已经编程了一段时间,我只做了后端工作或工作,因此最接近我已经得到用户界面是命令控制台(我知道的尴尬). 我使用Swing,就我可以收集这意味着通过扩展我也 ...

  4. windows线程 事件CreateEvent、SetEvent、ResetEvent、CloseHandle

    事件 相关问题 程序之前的通知的问题 事件的使用 1.创建事件 HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes,//事件安全属性 ...

  5. GIL , 线程池 , 同步 , 异步 , 队列 , 事件

    一.什么是GIL 官方解释: ''' In CPython, the global interpreter lock, or GIL, is a mutex that prevents multipl ...

  6. input 输入事件_输入超时为例学习 Python 的线程和协程

    需求:做一个程序等待用户输入,3秒内输入则会 echo 这个输入并立即退出.3秒内没输入则自动退出. 实现方法: 1. 线程(错误示范) import 首先启动两个线程,并把等待输入的 get_inp ...

  7. Qt线程、事件与QObject

    线程.事件与QObject 敬告:测试版本 原文连接:http://m.blog.csdn.net/blog/shang322/9344475# 本译文接近定稿,但还须一些加工和更好的例子.欢迎任何评 ...

  8. Swing 的任务线程与 EDT 事件分发队列模型

    1 现象及问题 在Swing程序中,经常能看到如下这种代码: 为何用invokeLater,而不直接调用呢? 大多数Swing的API非线程安全,不能在任意地方调用,应该只在EDT中调用. Swing ...

  9. 【转载】浏览器事件循环机制(event loop)

    首先,本文转自https://juejin.im/post/5afbc62151882542af04112d 当我看完菲利普·罗伯茨的 javascript event loop的演讲的时候,就对于事 ...

最新文章

  1. Java :BufferedWriter类和BufferedReader类的构造方法、主要方法
  2. 【 压缩感知 】OMP恢复算法
  3. springboot打Jar包和War包
  4. metabase 以链接或图片查看_Python下载微信公众号文章内的图片
  5. [转]C++中sleep()函数的使用
  6. 实时通信:使用Spring Boot实现Websocket
  7. Restful API 设计
  8. 网友希望一加7像iPhone XR一样流畅 刘作虎:iPhone很卡
  9. 解决Linux操作系统下SSH等终端乱码问题
  10. 2016年零售业CIO的七大革命性挑战
  11. oracle wip 拆解工单 操作_错过血亏!一文搞懂Oracle锁相关视图及相关操作
  12. ISL22346WFRT20Z-TK 数字电位器 4路 I²C
  13. Ubuntu开机无桌面图标
  14. 回收测试JInternalFrame
  15. (DINO) Emerging Properties in Self-Supervised Vision Transformers——自监督ViT的新属性和几点思考
  16. No country for old men 老无所依,从奥斯卡来说,我无所依
  17. 升级cuda10.2+pytorch+cudnn
  18. HTTP请求方法介绍
  19. 15-Puzzle Problem
  20. 如何通过自己的app打开twitter的指定功能

热门文章

  1. 使用代码获得Netweaver里某个software component和C4C的版本
  2. 如何在SAP云平台上使用MongoDB服务 1
  3. 软件测试理论入门(一)
  4. 画箱线图_箱线图的N种画法
  5. python io包_关于python中的IO流
  6. linux系统盘比较小,35M的中文linux硬盘简单安装方法Live-CD:SliTaz.tw-全世界最小的li...
  7. java for 循环执行顺序
  8. php多态性和继承是什么意思,封装 继承 多态的区别
  9. r与python自然语言处理_Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器 | 我爱自然语言处理...
  10. Linux中gsub函数,Linux中awk下 gsub函数用法