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
相关推荐
主要介绍了Python3多进程 multiprocessing 模块,结合实例形式详细分析了Python3多进程 multiprocessing 模块的概念、原理、相关方法使用技巧与注意事项,需要的朋友可以参考下
下面记录一下多进程编程的别一种方式,即使用multiprocessing编程 import multiprocessing import time def get_html(n): time.sleep(n) print('sub process %s' % n) return n if __name__ == '__main__': # 多...
Python_multiprocessing_4_效率对比_multithreading,_multiprocessing_co
在初步了解Python多进程之后,我们可以继续探索multiprocessing包中更加高级的工具。这些工具可以让我们更加便利地实现多进程。 进程池 进程池 (Process Pool)可以创建多个进程。这些进程就像是随时待命的士兵,准备...
本文实例讲述了Python多进程multiprocessing、进程池用法。分享给大家供大家参考,具体如下: 内容相关: multiprocessing: 进程的创建与运行 进程常用相关函数 进程池: 为什么要有进程池 进程池的创建与运行...
Python提供了非常好用的多进程包multiprocessing,你只需要定义一个函数,Python会替你完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。 1、新建单一进程 如果我们新建少量进程,可以如下: ...
1. multiprocessing 模块提供了多进程编程的能力 它的API非常类似于 threading 模块,但是也提供了一些threading 模块不具有的能力 相比于线程,它通过派生子进程来绕过GIL 的限制,从而可以充分利用多核处理器的...
python基础_32_Python_multiprocessing_1_什么是多进程_(多进程_多核运算_教学教程tutori
Python_multiprocessing_3_queue_进程输出_(多进程_多核运算_教学教程tutorial)
Python提供了非常好用的多进程包multiprocessing, 只需要定义一个函数,Python会完成其他所有事情。借助这个包,可以轻松完成从单进程到 并发执行的转换。multiprocessing支持子进程、通信和共享数据、执行不同形式...
Python程序实现多进程(multiprocessing)在Unix/Linux下,multiprocessing模块封装了fork()调用,使我们不需要关注fork()的细节。由于Windows没有fork调用,因此,multiprocessing需要“模拟”出fork的效果,父进程...
主要介绍了Python Multiprocessing多进程 使用tqdm显示进度条的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Python_multiprocessing_6_共享内存_shared_memory_(多进程_多核运算_教学教程tutori
本文实例讲述了Python多进程池 multiprocessing Pool用法。分享给大家供大家参考,具体如下: 1. 背景 由于需要写python程序, 定时、大量发送htttp请求,并对结果进行处理。 参考其他代码有进程池,记录一下。 2. 多...
主要介绍了Python多进程库multiprocessing中进程池Pool类的使用详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Python_multiprocessing_2_创建进程_(多进程_多核运算_教学教程tutorial)