python - 并行化一个简单的计算
问题描述
假设我有一个简单的类和其中的一些对象:
class Myclass:
def __init__(self,a):
self.a = a
def square(self):
self.a = self.a**2
list_of_objects = [Myclass(x) for x in range(10)]
我该如何计算:
for obj in list_of_objects:
obj.square()
以并行方式?
当然我的课要复杂得多,但语法应该是一样的。
解决方案
尝试查看 Python 的多处理模块。您可以执行以下操作:
import multiprocessing
procs = []
for obj in list_of_objects:
proc = multiprocessing.Process(target = obj.square)
procs.append(proc)
proc.start()
for proc in procs:
proc.join()
尽管在这个简单的示例中,由于设置进程涉及的开销,使用多处理会更慢。在这种情况下,当我对其进行计时时,将其序列化会更快。所以,我会尝试实际计时你更复杂的代码,以确保它值得开销。
推荐阅读
- python-3.x - “如何将区间拆分为两部分 interval_left 和 interval_right ”?
- elasticsearch - 如何配置 Rancher 以将多行日志发送到 Elasticsearch
- ios - 当文件名带有特殊字符时文件不下载
- java - 如何将带有自定义 .properties 文件的 Spring Boot 应用程序部署到 AWS ElasticBeanstalk?
- python - 如何从 treeWidgetItem 中获取 comboBox.currentText() 和 SpinBox.text()
- c# - c# asp.net:使用表单将元素添加到模型中的列表
- postgresql - Postgres insert-into-select 将一列保留为空,同时填充其他列
- sql - 如何匹配第 n 个位置的字符(Cloudera Impala SQL)
- html - 如何使用图像实现 Angular 7 下拉菜单?
- javascript - POST 表单答案到外部 API 离子角度