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()