import threading
import time
def get_task_id_list():
# 模拟获取任务列表
task_id_list = range(10)
return task_id_list
def todo(task_id, length):
# 模拟执行任务
time.sleep(1)
print(f"执行任务 {task_id}, task_id_list 长度为 {length}")
def main():
while True:
task_id_list = get_task_id_list()
length = len(task_id_list)
if task_id_list:
threads = []
for task_id in task_id_list:
thread = threading.Thread(target=todo, args=(task_id, length))
threads.append(thread)
for thread in threads:
thread.start()
for thread in threads:
thread.join()
time.sleep(1)
if __name__ == "__main__":
main()
解释:
get_task_id_list 函数用于模拟获取任务列表。您可以根据实际情况修改此函数以获取真实的任务列表。
todo 函数用于执行单个任务。您可以根据实际情况修改此函数以执行实际的任务。
main 函数是程序的入口点。它将无限循环地获取任务列表并启动新线程来执行任务。
在 main 函数中,首先使用 get_task_id_list 函数获取任务列表。然后,使用 len 函数计算任务列表的长度。
如果任务列表不为空,则创建一个线程列表。然后,对于任务列表中的每个任务 ID,创建一个新线程并将其添加到线程列表中。
然后,启动所有线程。
最后,等待所有线程完成。
程序将每隔 1 秒重复此过程。