python - 对于 multiprocessing.Pool(),初始化选项有哪些?
问题描述
我正在尝试更新一段代码,并且用于 multiprocessing.Pool() 的初始化程序值/函数在我运行它时导致 AttributeError 。我已经查看了文档和一堆相关的(ish)Google 结果,但我找不到任何解释初始化程序可以和不能是什么或有关如何使用它的任何重要细节的任何内容。我如何找到这方面的更多信息?
编辑:尝试更新的代码是来自Real Python 的并发文章的这段代码。
import requests
import multiprocessing
import time
session = None
def set_global_session():
global session
if not session:
session = requests.Session()
def download_site(url):
with session.get(url) as response:
name = multiprocessing.current_process().name
print(f"{name}:Read {len(response.content)} from {url}")
def download_all_sites(sites):
with multiprocessing.Pool(initializer=set_global_session) as pool:
pool.map(download_site, sites)
if __name__ == "__main__":
sites = [
"https://www.jython.org",
"http://olympus.realpython.org/dice",
] * 80
start_time = time.time()
download_all_sites(sites)
duration = time.time() - start_time
print(f"Downloaded {len(sites)} in {duration} seconds")
当我运行它时,它只是重复输出“AttributeError:Can't get attribute 'set_global_session' on”。
解决方案
推荐阅读
- c - 使用此语法在 flex/bison 中出现语法错误
- ring - ring monoid,任何人都可以举一个不是另一个的例子吗
- python - 为什么这段代码无法将复数转换为浮点数?或者我得到无效的语法
- java - 删除时违反数据模型的参照完整性约束
- javascript - CSS动画功能在IE浏览器中不起作用
- excel - 限制用户表单中的文本框接受 mm/dd/yy 格式的日期
- c# - 如何根据我们在文本框中输入的单词过滤下拉列表?
- java - 小助手类的OOP设计
- google-bigquery - Cloud Storage 中的 BigQuery DTS 失败
- php - 我的网址中的“/index.php?admin/admin_dashboard”是什么意思