两个线程分别做不同的操作时,有的时候需要相互发送消息。
之前我写过利用 pypubsub 完成 线程和 wxpython 界面的通信。 下面在提供一个纯线程间的通信。
场景描述如下:
线程1检测网络连接状况
线程2运行测试脚本 , 脚本进行时, 判断网络状态标识。 标识为fail 时,测试脚本进程暂停运行,直至标识为ok。
网络连接出问题的时候,线程1发送状态给线程2 。
我在线程1里设置了随机故障。
线程2 只有打印语句。
pub.subscribe 可以理解为注册一个接收消息的方法
pub.sendMessage 可以理解为发送消息给上一步注册的方法
代码里这两步的关键字是 'setstatus' , 按这样, 还可以定义多组消息发送接收。 函数可以带其他参数。 更多资料查询 pypubsub.
# encoding: utf-8
"""
@author: 陈年椰子
@contact: hndm@qq.com
@version: 1.0
@project:test
@file: thread_test.py
@time: 2020/5/8 0008 16:46
说明 线程间通信,发送标识
"""
from threading import Thread
from time import sleep
from random import randint
from pubsub import pub
class Thread1(Thread):
def __init__(self,t_name, t_times):
"""Init Worker Thread Class."""
Thread.__init__(self)
print

本文介绍了如何使用pypubsub库实现在Python多线程环境中进行线程间通信。线程1负责监测网络连接,线程2运行测试脚本,当网络状态变为'fail'时,测试脚本暂停,直到状态恢复到'ok'。通过pub.subscribe订阅和pub.sendMessage发送消息,实现线程间的交互。示例代码中,线程1模拟网络故障,线程2仅用于打印。关键字'setstatus'用于定义消息传递,该方法可扩展以处理更多消息类型。
最低0.47元/天 解锁文章
585

被折叠的 条评论
为什么被折叠?



