运行条件器

介绍

运行模块时会有一些条件

模块介绍

有一个专门存储运行任务的列表
当需要运行3次任务时,可以使用次数条件
当需要满足某个任务运行后,再运行任务,可以使用任务条件

次数条件

设置运行次数,任务运行设置的次数

def count_task(self, condition, task):        
    self.tasks.append(task.get_name)                    
    for i in range(condition):                     
        task.start()                
    self.tasks.remove(task.get_name)

任务条件

当某个任务在运行中时,这个任务开始运行

def work_task(self, condition, task):        
    while True:                        
        if condition in self.tasks:                                
            self.tasks.append(task.get_name)                                
            task.start()                                
            self.tasks.remove(task.get_name)                                
            return 1                        
        else:                                
            break

线程启动

两种条件运行,使用线程启动

def count_run(self, condition, task):            
    t = threading.Thread(target=self.count_task, args=(condition,task,))                    
    t.start()                
def work_run(self, condition, task):                
    t = threading.Thread(target=self.work_task, args=(condition,task,))                    
    t.start()

全部代码

import threading
class Runner:
    def __init__(self):        
        self.tasks = []            
    def count_task(self, condition, task):        
        self.tasks.append(task.get_name())        
        for i in range(condition):            
            task.start()        
        self.tasks.remove(task.get_name())            
    def work_task(self, condition, task):        
        while True:            
            if condition in self.tasks:                
                self.tasks.append(task.get_name())                
                task.start()                
                self.tasks.remove(task.get_name())                
                return 1            
            else:                
                break                
    def count_run(self, condition, task):        
        t = threading.Thread(target=self.count_task, args=(condition,task,))            
        t.start()            
    def work_run(self, condition, task):        
        t = threading.Thread(target=self.work_task, args=(condition,task,))            
        t.start()

测试

写一个任务类

class Task:
    def __init__(self, name):        
        self.name = name    
    def get_name(self):        
        return self.name    
    def start(self):        
        print(self.name,"运行了")

运行

task1 = Task("a")
task2 = Task("b")
task3 = Task("c")
runner = Runner()
runner.work_run("c", task1)
runner.count_run(109, task2) 
runner.count_run(100, task3)

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值