利用pypubsub 进行python线程间通信。

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两个线程分别做不同的操作时,有的时候需要相互发送消息。

之前我写过利用 pypubsub  完成 线程和 wxpython 界面的通信。 下面在提供一个纯线程间的通信。

场景描述如下:

线程1检测网络连接状况 

线程2运行测试脚本  , 脚本进行时, 判断网络状态标识。 标识为fail 时,测试脚本进程暂停运行,直至标识为ok。

网络连接出问题的时候,线程1发送状态给线程2 。

我在线程1里设置了随机故障。

线程2 只有打印语句。

 

pub.subscribe 可以理解为注册一个接收消息的方法
pub.sendMessage 可以理解为发送消息给上一步注册的方法
代码里这两步的关键字是 'setstatus'   , 按这样, 还可以定义多组消息发送接收。  函数可以带其他参数。  更多资料查询 pypubsub.

 

 

# encoding: utf-8
"""
@author: 陈年椰子
@contact: [email protected]
@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
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈年椰子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值