您当前的位置:首页 > 计算机 > 编程开发 > Python

python 简单的进程与协程

时间:04-01来源:作者:点击数:

python 简单的进程与协程

import os
import time
from multiprocessing import Process,Pool




##################### 多进程 与 进程池 #######################


def run_proc(name):
	""" 子进程要执行的 """
	print("Child process %s (%s) Running..."%(name,os.getpid()))
	time.sleep(3)




def main_ordinary():
	""" 一般的多进程 """
	print("Parent process %s."%os.getpid())
	for i in range(4):
		p = Process(target=run_proc,args=(i,))
		print("Process will start.")
		p.start()
	p.join()
	print("Process end.")




def main_pool():
	""" 进程池 """
	print("Parent process %s."%os.getpid())
	p = Pool(processes=3) # 最大3个进程
	for i in range(5):
		p.apply_async(run_proc,args=(i,))
	print("waitm")
	p.close()
	p.join()




######################## 协程---生产者与消费者 ########################




def xf():
	""" 消费者 """
	x = 0
	while 1:
		x = yield '消费了 %s 件'%x




def sc():
	""" 生产者 """
	f = xf()
	f.send(None)
	for i in range(1,11):
		print('生产 %s 件'%i)
		if not i%5:
			print(f.send(i))




if __name__ == '__main__':
	main_ordinary()
	main_pool()
	sc()
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门