欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > python多进程刻画进度

python多进程刻画进度

2024/10/24 7:27:17 来源:https://blog.csdn.net/qq_39698985/article/details/140322845  浏览:    关键词:python多进程刻画进度

问题
python多进程启动4个任务,当前共20个任务,如何刻画当前进度?

解决方案

在 Python 中使用多进程处理多个任务并刻画当前进度,你可以使用 multiprocessing 模块和一个共享变量(如 multiprocessing.Valuemultiprocessing.Manager().Value)来跟踪任务进度。以下是一个示例代码,展示了如何启动 4 个进程来处理 20 个任务,并实时显示进度。
示例代码

import multiprocessing
import time
import randomdef worker(task_queue, progress, total_tasks):while not task_queue.empty():try:task = task_queue.get_nowait()except multiprocessing.queues.Empty:break# 模拟任务处理time.sleep(random.uniform(0.1, 0.5))with progress.get_lock():progress.value += 1print(f"Progress: {progress.value}/{total_tasks} ({progress.value/total_tasks*100:.2f}%)")if __name__ == '__main__':total_tasks = 20num_workers = 4# 创建一个任务队列task_queue = multiprocessing.Queue()for i in range(total_tasks):task_queue.put(i)# 创建一个共享变量来跟踪进度progress = multiprocessing.Value('i', 0)# 启动工作进程processes = []for _ in range(num_workers):p = multiprocessing.Process(target=worker, args=(task_queue, progress, total_tasks))p.start()processes.append(p)# 等待所有工作进程完成for p in processes:p.join()print("All tasks completed.")

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com