python - 代码永远不会进入 'with Pool(processes=4) as pool: block
问题描述
python 中的多处理新手,只是想了解为什么我的代码不会进入 'with Pool(processes=4) as pool: 块。这是一个简单的代码(我删除了一些细节,因为它们不是必需的)。
import os
import psutil
import time
import datetime
import sys
import multiprocessing
from multiprocessing.pool import Pool
import random as rnd
import math as math
from itertools import repeat
def test_func(arg1, arg2, arg3, arg4):
do something()
if __name__ == '__main__':
arg1 = sys.argv[1]
arg2 = int(sys.argv[2])
arg3 = int(sys.argv[3])
arg4 = int(sys.argv[4])
result_list = []
print("Setting up pool")
with Pool(processes=8) as pool:
print("Pool is set up")
pool.starmap_async(test_func, zip(arg1, repeat(arg2), repeat(arg3), repeat(arg4)), chunksize=3)
pool.close()
pool.join()
print("The end in pool")
print("The end in __main__")
通常在所有情况下,我都希望它进入 print("pool is setup") 行。但有时它甚至不去那里并在 print("Setting up pool") 处停止。谁能解释在什么情况下会发生这种情况?
解决方案
推荐阅读
- javascript - 输入自由文本输入 HTML 时的内联下拉列表选择
- python - 客户用户模型错误;ModuleNotFoundError:没有名为“帐户”的模块
- r - 如何禁用 R Datatable 中特定列的双击反应性
- python - time.time() 浮动对象没有属性错误
- regex - Ansible 从文件中复制 ssh 公钥,在 uri 调用中使用
- python - 熊猫,扩展数据框系列
- .net - 我们可以将 WEBSITE_LOAD_USER_PROFILE=1 添加到 web.config
- azure-devops - Azure DevOps:将团队成员添加到新团队/区域
- python - 错误 NOT NULL 约束失败:使用 3 个模型(外键)自定义表单 django-all-auth
- c - gcc-10.0.1 特定的段错误