如何计算嵌套循环场景下的任务整体执行进度
嵌套循环总执行进度计算实现
核心逻辑:先统计全局总任务量,每完成一个最小执行单元(即内层循环的单次迭代)就累加已完成计数,再通过已完成计数和总任务量的占比计算实时整体进度。
修正后可实现整体进度统计的代码
def task(): main_threads = 5 target_for_one_thread = 50 # 预计算总任务量 total_tasks = main_threads * target_for_one_thread completed = 0 for i in range(main_threads): for j in range(target_for_one_thread): # 单次内层循环执行逻辑 pass # 累计已完成任务数 completed += 1 # 计算整体进度 progress = 100.0 * completed / total_tasks # 可选:仅当进度整数部分变化时打印,减少输出次数 if int(progress) != int(100.0 * (completed-1) / total_tasks): print(f"当前进度:{progress:.1f}%") progress = 100 print("当前进度:100.0%") return "Success"
实现说明
- 总任务量为外层循环数和内层循环数的乘积,覆盖所有嵌套循环的执行单元
- 已完成计数每次在内层循环迭代后自增,天然包含外层循环的执行进度:外层每进入下一轮迭代,就意味着上一轮的所有内层任务都已执行完成
- 如果要避免频繁打印进度,可以增加进度变化阈值判断,仅当进度出现可感知的变化时再输出
内容的提问来源于stack exchange,提问作者user16105506
相关产品推荐
相关产品推荐

