在python中使用gevent subprocess实现shell调用

有个人问我gevent怎么实现非堵塞的系统调用,当然threading是可以实现的, 但是大家知道threading是不太可控的。 python实现系统调用的模块还是很多的,比如subprocess,os popen,commands等。  现在高并发的服务基本都是这种协程实现的。 协程是个用户态的东西,相比线程的时间片的调度来说,他可以自己控制调度,基于事件的方式来监控堵塞的回调。 

gevent在1.0之后,支持的socket和subprocess的模块, 我测试过效率,线程的数目达到100后,有时候会出现少许的崩溃,但是用gevent的subprocess,不会出现这样的情况,及其的稳定。  我 gevent很有感觉,像以前写监控系统的服务端, 分布式的rpc调度,爬虫。。。。 

下面是执行后的结果,可以判定gevent subprocess没有发现堵塞的情况,是并发进行的。 


对Golang感兴趣的朋友可以加群: 278517979 !!!
另外如果大家觉得文章对你有些作用! 如果想赏钱,可以用微信扫描下面的二维码, 感谢!
另外再次标注博客原地址  xiaorui.cc

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">