zoukankan      html  css  js  c++  java
  • Python 多进程应用示例

    import multiprocessing
    import time
    
    def func(name):
    	outputline=name
    	for i in range(3):
    		outputline+= " repeat "+str(i)
    		time.sleep(1)
    	return outputline
    
    def main():
    	pool=multiprocessing.Pool(processes=4)
    	result=[]
    	for i in range(4):
    		pname="cpu_%d"%i
    		result.append(pool.apply_async(func, (pname, )))
    	pool.close()
    	pool.join()
    	for res in result:
    		print res.get()
    	print "all processes done"
    
    if __name__ == '__main__':
    	main()
    

     示例2,使用锁同步

    import multiprocessing
    import time
    
    def func(name,lock):
    	outputline=name
    	for i in range(3):
    		outputline+= " repeat "+str(i)
    		lock.acquire()
    		print name+" repeat "+str(i)
    		lock.release()
    		time.sleep(1)
    	return outputline
    
    def main():
    	lock=multiprocessing.Lock()
    	subprocesses=[]
    	for i in range(4):
    		pname="cpu_%d"%i
    		process=multiprocessing.Process(target=func, args=(pname,lock))
    		process.start()
    		subprocesses.append(process)
    	
    	for p in subprocesses:
    		p.join()
    
    	print "all processes done"
    
    if __name__ == '__main__':
    	main()
    

    ref:

    http://www.coder4.com/archives/3352

    http://www.cnblogs.com/vamei/archive/2012/10/12/2721484.html

  • 相关阅读:
    #4702. gcd
    独特的树叶

    搞笑的代码 ( funny )
    越野赛车问题
    删边(cip)
    最长公共子序列
    美食节
    线段树
    新年快乐
  • 原文地址:https://www.cnblogs.com/plwang1990/p/4386316.html
Copyright © 2011-2022 走看看