Python多进程并发(multiprocessing),,1、新建单一进程如果我们
Python多进程并发(multiprocessing),,1、新建单一进程如果我们
1、新建单一进程
如果我们新建少量进程,可以如下:
import multiprocessingimport timedef func(msg): for i in xrange(3): print msg time.sleep(1)if __name__ == "__main__": p = multiprocessing.Process(target=func, args=("hello", )) p.start() p.join() print "Sub-process done."
2、使用进程池
是的,你没有看错,不是线程池。它可以让你跑满多核CPU,而且使用方法非常简单。
注意要用apply_async,如果落下async,就变成阻塞版本了。
processes=4是最多并发进程数量。
import multiprocessingimport timedef func(msg): for i in xrange(3): print msg time.sleep(1)if __name__ == "__main__": 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."
3、使用Pool,并需要关注结果
更多的时候,我们不仅需要多进程执行,还需要关注每个进程的执行结果,如下:
import multiprocessingimport timedef func(msg): for i in xrange(3): print msg time.sleep(1) return "done " + msgif __name__ == "__main__": pool = multiprocessing.Pool(processes=4) result = [] for i in xrange(10): msg = "hello %d" %(i) result.append(pool.apply_async(func, (msg, ))) pool.close() pool.join() for res in result: print res.get() print "Sub-process(es) done."
相关内容
- python的多线程模块multiprocessing,,#!/usr/bin/e
- python subprocess模块 监控子进程的2种方式 忙等待和立即
- python 通关sleep函数等待到明天再执行,pythonsleep,def wa
- twisted 异步抓取网页的代码,twisted抓取,from twisted
- python定时任务框架包Advanced Python Scheduler,pythonschedule
- python重命名文件代码,python重命名代码,#-*-coding:g
- python统计cpu的利用率,pythoncpu利用率,#-*-coding=u
- python通过xmlrpc进行远程调用的范例演示,pythonxmlrpc,服务
- python通过ssh-powershell监控windows,,#! /usr/bin/
- python 操作 ssh,pythonssh,#coding:utf-
评论关闭