PHP前端开发

如何用 Python 实现间隔执行任务而不影响其他任务?

百变鹏仔 5天前 #Python
文章标签 而不

python 间隔执行任务而不影响其它任务

python 中计时并让任务以间隔时间运行,又不影响其它任务,可以通过多线程实现。以下是如何用 threading 和 time 模块来完成:

方案一:有时间间隔代码放到线程

将有时间间隔的任务放到单独线程中执行,从而不影响主线程。代码如下:

立即学习“Python免费学习笔记(深入)”;

import timeimport threadingclass threading0(threading.thread):    def __init__(self):        threading.thread.__init__(self)    def run(self):        while true:   # 条件自定,不能为空。            # 执行等待任务(时间不超过1秒,超过1秒可从sleep中减去)。            time.sleep(60)   # 单位:秒threading0().start()while true:   # 条件自定,不能为空。    # 执行不等待任务

方案二:无时间间隔代码放到线程

与方案一类似,将无时间间隔的任务放到单独线程中执行。代码如下:

import timeimport threadingclass threading0(threading.thread):    def __init__(self):        threading.thread.__init__(self)    def run(self):        while true:   # 条件自定,不能为空。            # 执行不等待任务threading0().start()while true:   # 条件自定,不能为空。    # 执行等待任务(时间不超过1秒,超过1秒可从sleep中减去)。    time.sleep(60)   # 单位:秒

方案三:有时间间隔代码和无时间间隔代码统统放到线程

如果既有时间间隔的任务,又有无时间间隔的任务,可以将它们都放到各自的线程中执行。代码如下:

import timeimport threadingclass threading0(threading.Thread):    def __init__(self):        threading.Thread.__init__(self)    def run(self):        while True:   # 条件自定,不能为空。            # 执行不等待任务class threading1(threading.Thread):    def __init__(self):        threading.Thread._init__(self)    def run(self):        while True:   # 条件自定,不能为空。            # 执行等待任务(时间不超过1秒,超过1秒可从sleep中减去)。            time.sleep(60)   # 单位:秒t0 = threading0()t1 = threading1()t0.start()t1.start()# 下面的代码可要可不要,只是用于等待线程运行完毕,如果是死循环,那么就可以不写下面的代码。t1.join()t2.join()# 执行线程结束后需要运行的代码。(不用运行代码的就当我没说)