# -*- encoding: utf-8 -*-
import os
import subprocess
from time import time
'''
第36条: 用subprocess模块来管理子进程
关键:
1 并发
含义: 轮流执行程序的方式
2 并行
含义: 同一时间执行多个程序
3 并发与并行的区别
并发速度要比并行要慢
4 运行子进程的方式
subprocess模块: 最简单的子进程管理模块,可管理输入流和输出流
特点: 子进程会独立于父进程运行
父进程: 是python的解释器
可以给communicate传入timeout参数,避免死锁
参考:
Effectiv Python 编写高质量Python代码的59个有效方法
'''
def useSubprocess():
proc = subprocess.Popen(
['echo', 'I like python!'],
stdout=subprocess.PIPE
)
out, err = proc.communicate()
result = out.decode("utf-8")
print result
def getSubprocessStatus():
proc = subprocess.Popen(
['sleep', '0.3']
)
while proc.poll() is None:
print "Working..."
print "Exit status: {status}".format(
status=proc.poll()
)
def runSleep(period):
proc = subprocess.Popen(
['slee
Effective Python 读书笔记: 第36条: 用subprocess模块来管理子进程
最新推荐文章于 2021-11-14 21:41:25 发布