PHP前端开发

Python 如何在 sleep 期间并行执行其他任务?

百变鹏仔 4天前 #Python
文章标签 如何在

python 在 sleep 期间并行处理任务

python 中的 sleep 函数会让程序在指定的时间内进入休眠状态。不过,该如何在 sleep 期间继续执行其他任务呢?

在给定的代码片段中,程序需要在每次执行 times 函数后的 7200 秒内每 60 秒执行一次特定操作。

一种解决方法

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

一种解决方法是使用多线程。线程是一种轻量级进程,它允许程序并行执行多个任务。在 python 中,可以使用 threading 模块来创建和管理线程。

例如,可以创建一个单独的线程来每 60 秒执行特定操作,并在主线程中执行 times 函数和 7200 秒的 sleep。

修改后的代码片段

import threadingimport timedef _do_something():    # 每 60 秒执行的任务def times(h=0, h1=0):    # 主线程    while True:        while True:            now = datetime.datetime.now()            if now.hour >= h and now.hour <= h1:                break            print('当前时间:', time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))            time.sleep(20)        for i in range(1, 99999):            datas(content())            print(localtimes)        time.sleep(7200)# 创建一个线程来每 60 秒执行一次 _do_something 函数thread = threading.Thread(target=_do_something)thread.start()# 在主线程中执行 times 函数times(h=8, h1=18)

使用这种方法,程序可以同时执行 times 函数和每 60 秒执行一次的特定操作。