如果只是在单线程中使用
subprocess模板
,
会发现一切工作正常
,
但是当在多线程中使用
subprocess模块的时候
,
在某些情况下
,
一些线程会直接夯住不动
,
有没有遇到过这样的问题的?于是
遇到这个问题排查了特别久
,
最终发现是
subprocess模块本身的问题不难解决,可以作为学习的参考。
问题方法:
将
python3中的代码backport到python2.7中,
创建了
subprocess32项目,
项目描述中解释了
fork和exec之间处理了一些subprocess中没有解决的问题,让整个模板在多线程下工作更加稳定。
使用
pip install subprocess32就可以安装.
、
注意这个包只能在
Linux/Unix中使用,Windows中不行。
要使用也比较简单,
就是先尝试导入
subprocess32为subprocess,如果不成功,
那么直接导入
subporcess。
代码如下:
大家如果需要在
python调用外部命令,可以试试sh模块。该模块的使用方式与子流程不同。如果你遇到和小编一样的问题,按照上面的方法解决即可。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Python如何调用实例方法10/04
- ♥ unity3d 不支持 python 吗?11/04
- ♥ 推荐15个让新手爱不释手的Python高级库02/01
- ♥ python字典遍历所有键值对09/11
- ♥ python如何检测字符串是否全是字母?10/10
- ♥ 如何在python中输入评论号10/27
内容反馈