两个线程分别做不同的操作时,有的时候需要相互发送消息。
之前我写过利用 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