gra*_*tur 38 python multiprocessing
我想学习如何使用Python的多包,但我不明白之间的差别map和imap.
map返回一个实际数组或集合的差异是什么,而imap返回数组或集合上的迭代器?我何时会使用一个而不是另一个?
另外,我不明白chunksize参数是什么.这是传递给每个进程的值的数量吗?
Ant*_*ony 33
这就是区别.您可能使用imap而不是map的一个原因是,如果您想开始处理前几个结果而不等待计算其余结果.map在返回之前等待每个结果.
至于chunksize,有时更有效地分配大量工作,因为每次工作者请求更多工作时,都会有IPC和同步开销.
小智 5
使用 imap,分叉调用是并行完成的,而不是一个接一个按顺序完成的。例如,下面您将点击三个交易所来获取订单簿。imap.pool 调用不是按顺序依次访问交易所 1、交易所 2、交易所 3,而是非阻塞的,并且在您调用后立即直接转到所有三个交易所以获取订单簿。
from pathos.multiprocessing import ProcessingPool as Pool
pool = Pool().imap
self.pool(self.getOrderBook, Exchanges, Tickers)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13747 次 |
| 最近记录: |