Python 如何在 sleep 期间并行执行其他任务?
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 秒执行一次的特定操作。