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.")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/870082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

imx6ull/linux应用编程学习(17)利用mqtt上传开发板数据,和控制开发板led(基于正点)

1.关于如何创建自己的服务器,可看上篇文章 imx6ull/linux应用编程学习(16)emqx ,mqtt创建连接mqtt.fx-CSDN博客 2.实现任务:(正点原子教程源码改) (1)用户可通过手机或电脑远程控制开发板上的…

小白的OS Copilot 产品测评

背景 通过群友介绍才知OS Copilot 。不想错过任何优秀的AI产品。随着互联网的发展和时代的进步,要紧跟时代,了解市面上的优秀的AI科技产品。 OS Copilot 产品体验评测 1)您的角色是什么?开发、运维、学生?如果使用O…

Unity中短路法在背包系统的应用

一、计数法 int counter 0;foreach(GameObject slot in slotList) {if(slot.transform.childCount > 0){counter 1;} }return counter 21;计数法的复杂度为 O(n),其中n 是插槽的数量。无论插槽是否已满,都会遍历所有插槽。 二、短路法 foreach (…

服务器怎么进PE系统?

服务器进PE是指将服务器的操作系统切换到预安装环境(Pre-Installation Environment)的状态。在PE环境下,可以进行一些系统管理和故障排除的操作。在进入PE(Preinstall Environment)之前,首先需要确保你的服…

类和对象——【const成员】【static成员】【友元】【内部类】

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件iostream的声明,使用时请自行添加。 博主主页:Yan. yan.                        …

WPF 框架 Prism IActiveAware接口使用

目的 在Prism框架中,IActiveAware接口是一个重要的接口,它允许开发者实现组件或视图的激活和失活逻辑。这通常在需要响应用户界面的可见性或激活状态变化时非常有用,比如在选项卡式界面中切换标签页时。 如何使用IActiveAware IActiveAwar…

css文字自适应宽度动态出现省略号...

前言 在列表排行榜中通常会出现的一个需求:从左到右依次是名次、头像、昵称、徽标、分数。徽标可能会有多个或者没有徽标,徽标长度是动态的,昵称如果过长要随着有无徽标进行动态截断出现省略号。如下图布局所示(花里胡哨的底色是…

SpringSecurity中文文档(Servlet OAuth 2.0 Login)

OAuth 2.0 Login OAuth 2.0 Login 功能允许应用程序让用户通过使用 OAuth 2.0 Provider (如 GitHub)或 OpenID Connect 1.0 Provider (如 Google)的现有帐户登录到应用程序。OAuth 2.0 Login 实现了两个用例: “ Login with Google”或“ Login with GitHub”。 OAuth 2.0 Lo…

若依vue集成electron实现打包exe应用程序

一、修改package.json文件,加入相关依赖和配置 {"name": "ruoyi","version": "3.8.6","description": "若依管理系统","author": "若依","license":

分层图最短路,CF 1725M - Moving Both Hands

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1725M - Moving Both Hands 二、解题报告 1、思路分析 题意看似很简单,就是问我们两个人分别处于1, p两个点上,二者同时出发,相遇时二者所用路径之和的最小值 不难想到求…

mysql默认开启索引下推,减少回表的数据

目的:在回表前就进行where多个条件的判断,从而回表到服务器层的数据量足够小 索引下推的工作原理 在没有索引下推优化的情况下,当 MySQL 使用索引进行查询时,它会从索引中获取符合条件的索引条目,然后回表&#xff0…

Ubuntu中如何设置IP地址

在 Ubuntu 中,可以通过几种方式设置 IP 地址:使用网络管理器图形界面、命令行工具(如 nmcli 或 nmtui)、或直接编辑网络配置文件。以下是这几种方法的详细步骤。 方法一:使用图形界面(Network Manager&…

Git协作

文章目录 Git协作冲突冲突的发生情况解决冲突如何处理冲突 1 分支1.1 什么是Git分支1.2 创建分支 2 切换分支2.1 指向分支2.2 暂存分支切换分支与未提交更改的处理使用 Stash 临时保存更改Stash 的工作原理:场景设定使用 Git Stash 3 远程分支3.1 快进合并快进合并的…

13. 求余

问题描述 在 C/C/Java/Python 等语言中, 使用 % 表示求余, 请问 2021 % 20 的值是多少? 答案提交 这是一道结果填空的题, 你只需要算出结果后提交即可。本题的结果为一 个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。 运行限制 最大运行时间&#xff1…

Qt/QML学习-定位器

QML学习 定位器例程视频讲解代码 main.qml import QtQuick 2.15 import QtQuick.Window 2.15Window {width: 640height: 480visible: truetitle: qsTr("positioner")Rectangle {id: rectColumnwidth: parent.width / 2height: parent.height / 2border.width: 1Col…

Qt基础控件总结—多页面切换(QStackWidget类、QTabBar类和QTabWidget类)

QStackedWidget 类 QStackedWidget 类是在 QStackedLayout 之上构造的一个便利的部件,其使用方法与步骤和 QStackedLayout 是一样的。QStackedWidget 类的成员函数与 QStackedLayout 类也基本上是一致的,使用该类就和使用 QStackedLayout 一样。 使用该类可以参考QStackedL…

Perl 语言进阶学习

Perl 语言进阶学习 在掌握 Perl 的基础知识后,进一步学习 Perl 的高级特性和应用,将有助于提升编程效率和解决复杂问题的能力。本文将详细介绍 Perl 语言的高级功能、最佳实践以及实际应用案例。 目录 高级数据结构 多维数组复杂数据结构 引用与匿名数…

计算机如何学习

1. 不要只盯着计算机语言学习,你现在已经学习了C语言和Java,暑假又规划学习Python,最后你掌握的就是计算机语言包而已。 2. 建议你找一门想要深挖的语言,沿着这个方向继续往后学习知识就行。计算机语言是学不完的,而未…

iPhone数据恢复篇:在 iPhone 上恢复找回短信的 5 种方法

方法 1:检查最近删除的文件夹 iOS 允许您在 30 天内恢复已删除的短信。您需要先从“设置”菜单启用“过滤器”。让我们来实际检查一下。 步骤 1:打开“设置” > “信息”。 步骤 2:选择“未知和垃圾邮件”,然后切换到“过滤…

如何将若依vue升级到springboot3.x?

为了确保项目符合要求,Spring Boot 3.x 要求Java版本为17或更高。 1、修改根目录下的pom.xml文件 <!-- java.version版本8更换为17 --> <java.version>17</java.version><!-- 新增节点 --> <mybatis-spring-boot.version>3.0.3<