gevent使用子进程



gevent中使用子进程


1.子进程概念;


2.gevent中如何使用;


3.编程观察。



子进程


1.子进程为另外进程(称为父进程)所创建的进程。子进程继承了父进程大部分属性;


2.python中subprocess模块可以方便创建子进程。



gevent子进程


由于python内置的子进程模块,进程间是无法进行协作的。因此gevent内部patch了subprocess模块,支持协作式等待。



编程实践


实例1


process1.png


执行结果:


process2.png


实例2


import gevent
from multiprocessing import Process, Pipe
from gevent.socket import wait_read, wait_write
a,b= Pipe()
c,d= Pipe()
def relay():
    for i in range(10):
        msg = b.recv()
        c.send(msg+' in '+str(i))
def put_msg():
    for i in range(10):
        wait_write(a.fileno())
        a.send('hi')
def get_msg():
    for i in range(10):
        wait_read(d.fileno())
        print d.recv()
proc = Process(target=relay)
proc.start()
g1 = gevent.spawn(put_msg)
g2 = gevent.spawn(get_msg)
gevent.joinall([g1, g2], timeout=1)


执行结果:


process3.png



【本文由大发二分彩—大发三分彩官方独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 tvqo.cn
蜀ICP备13014270号-4 Version 5.0.0 release20160127

免费领取价值1888元求职宝典!

客服热线 400-862-8862

回到顶部