【发布时间】:2025-12-23 07:35:11
【问题描述】:
所以,我有 3 维列表。例如:
A=[[[1,2,3],[4,5,6],[7,8,9]],...,[[2,4,1],[1,4,6],[1,2,4]]]
我想独立处理 A 中的每个二维列表,但它们都有相同的过程。如果我按顺序做,我会做:
for i in range(len(A)):
A[i]=process(A[i])
但是,这需要很长时间。您能告诉我如何通过 Python 中的数据并行化进行并行计算吗?
【问题讨论】:
-
并行化需要线程化。这需要大量的工作。由于列表是可变的,因此您可能必须为每个单独的线程创建一个副本(如果我擅长编程的话)。与在单个线程中处理相比,复制/切片列表可能需要更多时间。
-
这里的选项列表...wiki.python.org/moin/ParallelProcessing
-
@Zizouz212 那么,没有比顺序处理更有效的方法了吗?
-
Python 中的线程实际上根本不是并行的,并且会减慢速度,因为无论线程数如何,全局解释器锁一次只执行一条 Python 指令。它只适用于在另一个线程上等待 I/O 时做某事。真正的多处理可以工作,但共享数据需要锁定,并且如果有大量写入数组,也很可能会减慢速度。
-
@cricket_007 谢谢,我试试看。
标签: python python-2.7