Python 使用线程启动类方法实现暂停与结束案例

定义测试执行类Tester.py

python 复制代码
# 执行试验类
import time

class Tester(object):
    def __init__(self, jobName, stepList):
        self.jobName = jobName
        self.stepList = stepList

    # 开始执行
    def start(self, flag):
        print(f'{self.jobName} start')
        self.status = "start"

        stepIndex = 0
        while not flag.isSet() and self.status != "stop":
            if self.status == "start":
                step = self.stepList[stepIndex]
                print(f"{self.jobName} run step: {step}")
                stepIndex += 1
            if stepIndex >= len(self.stepList):
                self.status = "stop"
            time.sleep(1)

    def stop(self):
        self.status = "stop"
        self.stepList = []
        self.jobName = ""

    def pause(self):
        self.status = "pause"

    def reStart(self):
        self.status = "start"

执行主类ACClient.py

python 复制代码
from obj.Tester import Tester
import threading
import time

tester = Tester("AJob", ['a','b','c','d','e','f','g','h'])
testerB = Tester("BJob", ['a','b','c','d','e','f','g','h'])

# 创建线程,目标是my_instance的my_method方法,并传入参数
flag = threading.Event()
thread = threading.Thread(target=tester.start, args=(flag, ))
# 启动线程
thread.start()

# 创建线程,目标是my_instance的my_method方法,并传入参数
flagB = threading.Event()
threadB = threading.Thread(target=testerB.start, args=(flagB, ))
# 启动线程
threadB.start()
print("====================")

# 测试结束
# time.sleep(1)
# flag.set();

# 测试暂停
time.sleep(2)
tester.pause()
time.sleep(10)
tester.reStart() # 10秒后继续

print("====================")

有点懒得解释,写完之后,执行主类ACClient.py看效果,可以打开测试结束看效果,反正我不知道什么原理。

相关推荐
happylifetree4 小时前
Python09:核心语法-数据存储与运算-字面量
python
心之语歌4 小时前
Tkinter 画布基本梳理
运维·服务器·python
Wx-bishekaifayuan4 小时前
django个性化旅游路线推荐平台49005-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
小白快快跑哦5 小时前
python-字符串全解(六):正则表达式-量词
python·正则表达式·字符串
禹凕6 小时前
机器学习之Selenium(Machina Learning about Selenium)
爬虫·python·selenium·测试工具·机器学习
ebiobiz7 小时前
基于 GD32 Embedded Builder (GEB) 与 Nimmake 的 MCU 工程搭建指南
c++·python·单片机·嵌入式硬件·mcu
老歌老听老掉牙8 小时前
穿越时空的物流密码:VRP与VRPTW的深度剖析及实战求解
python·物流·vrp
FYKJ_20108 小时前
django电影推荐系统55066-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
ShyanZh8 小时前
【Python3基础】13-Python 常用设计模式
开发语言·python·设计模式
小静AI工程实验室9 小时前
RSA 算法详解:从模幂原理到 OAEP 加密、PSS 签名与 Python 实验
python·算法