map与apply区别
来源:互联网 发布:地球大炮 知乎 编辑:程序博客网 时间:2024/06/05 15:11
1. 使用map方法
- import multiprocessing
- import time
- def f(x):
- time.sleep(2)
- print x
- if __name__ == '__main__':
- pool = multiprocessing.Pool(processes=5)
- pool.map(f, xrange(10))
- 并发5个进程
- map方法会依次将参数二数组每个元素传入参数1方法中
- 如果将map()替换为map_async(),则方法不会阻塞,而是直接执行main进程后面的代码,所以要配合pool.close()和pool.join()一起使用。close()方法是使pool不再接受新任务;join()方法是阻塞main进程等待子进程执行完成才可以运行后面code
2. 使用apply方法
- import multiprocessing
- import time
- def func(msg):
- print msg
- time.sleep(1)
- if __name__ == "__main__":
- print 'start main-process'
- pool = multiprocessing.Pool(processes=4)
- for i in xrange(10):
- msg = "hello %d" %(i)
- pool.apply_async(func, (msg, ))
- pool.close()
- pool.join()
- print "Sub-process(es) done."
- print 'Main-process done.'
- apply_async和apply方法区别是前者不会阻塞main进程,需要用pool.close()和join()方法阻塞等待子进程执行。
- apply与map方法相比,它只是调用方法和参数,而map方法会将数组参数迭代传给被调用方法
- pool.apply_async(func, (msg, )) 这行msg后面的逗号是不能省略的,否则不会执行func方法
--end
阅读全文
0 0
- map与apply区别
- call() 与 apply()区别
- call与apply区别
- call()与apply()的区别
- $apply与$evalasync的区别
- call与apply的区别
- js call()与apply(区别)
- apply()与call()的区别
- call与apply的区别
- apply()与call()的区别
- Pandas 中map, applymap and apply的区别
- javascript 中call与apply区别
- JavaScript中的call与apply的区别
- js中apply与call的区别
- 理清apply, call的区别与联系
- JavaScript中apply()与call()的区别
- cross apply 与 inner join 的区别
- apply()与call()的区别和用法
- dxfgrabber简单读取dxf文件中的多行文本和单行文本信息
- iOS WebView 获取内存图片 图片点击
- 正则表达式
- 文章标题 Mayor's posters
- 字符串的全排列
- map与apply区别
- HashMap Hashtable LinkedHashMap 和TreeMap区别
- 2017.9.13 不等式组 思考记录
- android sqlite支持的数据类型
- 职场中哪些敏感问题不能问
- CSS 选择器权重计算规则
- 用Swing开发GUI程序(六)JTable
- 匿名科创地面站v4.08
- Java8的十大新特性