博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python处理多线程之间事件通讯方法
阅读量:5332 次
发布时间:2019-06-14

本文共 1039 字,大约阅读时间需要 3 分钟。

一、什么是事件

每执行一个事情,肯定有该事情的执行后状态,那事件就是该事情发生的信号

在程序中,多线程之间需要通讯,而事件就是方便线程之间的通讯

案例:

1.服务器启动需要5秒

2.客服端启动后去链接服务器

3.连接服务器必须保证服务器已经开启了

二、代码一

#使用全局变量来做判断import timefrom threading import Threadboot = Falsedef server_task():    global boot    print("正在启动....")    time.sleep(5)    print("启动....成功")    boot = Truedef client_task():    while True:        print("连接服务器....")        time.sleep(1)        if boot:            print("连接成功")            break        else:            print("error 连接失败 服务器未启动!!")t1 = Thread(target=server_task)t1.start()t2 = Thread(target=client_task)t2.start()t1.join()t2.join()

三、代码二

# 使用事件实现#注意:event线程通讯仅仅用于简单的条件判断#set()将状态修改为true#wait()将状态修改为ture才继续执行下一步import timefrom threading import Thread,Eventevent =Event()def server_task():    print("正在启动....")    time.sleep(5)    print("启动....成功")    event.set()def client_task():    event.wait() #一个阻塞的函数  会阻塞直到对event执行set函数为止    print("连接成功!")t1 = Thread(target=server_task)t1.start()t2 = Thread(target=client_task)t2.start()

 

转载于:https://www.cnblogs.com/angelyan/p/11374232.html

你可能感兴趣的文章
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>
浅谈性能测试
查看>>
Winform 菜单和工具栏控件
查看>>
CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
查看>>
巧用Win+R
查看>>
浅析原生js模仿addclass和removeclass
查看>>
Python中的greenlet包实现并发编程的入门教程
查看>>
java中遍历属性字段及值(常见方法)
查看>>
深入理解jQuery框架-框架结构
查看>>
YUI3自动加载树实现
查看>>
python知识思维导图
查看>>
当心JavaScript奇葩的逗号表达式
查看>>
App Store最新审核指南(2015年3月更新版)
查看>>
织梦MIP文章内容页图片适配百度MIP规范
查看>>
[Kali_BT]通过低版本SerialPort蓝牙渗透功能手机
查看>>
C语言学习总结(三) 复杂类型
查看>>
HNOI2018
查看>>