【发布时间】:2017-07-28 06:04:30
【问题描述】:
我有一个号码列表:
a=[1,2,3,4,5,.....2000]
我必须对每个数字求平方并更新相同的数组,但我不想编写循环,而是想使用并行处理来完成。
因此,对数组中的每个数字求平方本身就是一个过程。
Expected output=[1,3,9,16,25,........]
如何使用 python 多处理库实现这一点?
已经尝试使用线程库,但代码速度不够快,加上线程库没有使用所有内核。
【问题讨论】:
-
如果您能够/愿意使用
numpy,那么您可以比我想象的多处理更快地做到这一点。 -
最后一点,线程不能提高这个任务的速度。由于全局解释器锁 (GIL),任何时候只有一个线程可以执行其代码。线程只会给人一种并发的错觉。
-
多个进程不受GIL约束,只有多线程是@roganjosh
-
@101 我从来没有说过多处理受 GIL 的约束(尽管每个子进程都是)。我的评论特别提到线程,以解决问题的最后一句话......
-
numpy 只让你执行数值计算,对吗?...我不能对数组上的字符串或类似的东西进行一些模式匹配..?
标签: python multithreading python-3.x python-multiprocessing