创建进程:
1.os.system函数
2.os.execl(file,agv)
终止进程:
1.sys.exit函数 ----做清理工作
2.os.abort函数---暴力退出
subprocess模块管理:
等待子进程结束。popen.wait()
import subprocess
pingP=subprocess.Popen(args='ping –n 4 www.sina.com.cn', shell=True) #生成ping进程
pingP.wait() #等待进程完成
print (pingP.pid) #打印进程ID
print (pingP.returncode) #打印进程返回值
子进程输入输出重定向:
print (pingP.stdout.read()) #读取进程的输出信息
调用外部系统命令
subprocess.call()
信号机制:
signal.sigal()
在多线程用_thread.start_new_thread(functin,agv[])
在主函数中需要加死循环以避免退出、
使用threading.Thread类构建多线程
class ThreadDemo(threading.Thread): def __init__(self, index, create_time): #线程构造函数 threading.Thread.__init__(self) self.index = index self.create_time = create_time def run(self): #具体的线程运行代码 time.sleep(1) #休眠1秒钟 print ((time.time()-self.create_time),"\t",self.index) print ("Thread %d exit..." % (self.index)) for index in range(5): thread = ThreadDemo (index, time.time()) thread.start() #启动线程
*主线程等待子线程thread.join()
*线程中的局部变量threading.local()
线程同步:
一、锁机制:
1.低层次的_thread
生产锁对象:_thread.allocate_lock()
获取锁: lock.acquire()
释放锁:lock.release()
2.高层次threading锁
生产锁对象:threading.Lock()
获取锁: lock.acquire()
释放锁:lock.release()
进程同步注意:join应在生产者和消费者都开始运行之后,添加。