python實(shí)現(xiàn)啟動一個外部程序,并且不阻塞當(dāng)前進(jìn)程
python可以使用os模塊中的system函數(shù)來啟動外部程序。
Windows平臺下使用start命令就可以不阻塞當(dāng)前進(jìn)程的執(zhí)行程序,測試代碼如下:
import os
os.system(’start calc’)
補(bǔ)充知識:Python:啟動大量子進(jìn)程
我就廢話不多說了,大家還是直接看代碼吧~
#!/usr/bin/env python# coding:UTF-8 '''@version: python3.x@author:曹新健@contact: 617349013@qq.com@software: PyCharm@file: 5.啟動大量子進(jìn)程.py@time: 2018/9/18 22:28''' from multiprocessing import Process,Poolimport time,os,random def run(num): print('子進(jìn)程%d啟動---%s' % (num,os.getpid())) start = time.time() time.sleep(random.choice([1,2,3])) end = time.time() #print(end) print('子進(jìn)程%d結(jié)束---%s---耗時%.2f' % (num, os.getpid(),end-start)) if __name__ == '__main__': print('父進(jìn)程啟動') #創(chuàng)建進(jìn)程池,Pool默認(rèn)為CPU核心數(shù) pp = Pool() for i in range(8): #創(chuàng)建進(jìn)程,放入進(jìn)程池統(tǒng)一管理 result = pp.apply_async(run,args=(i,)) #進(jìn)程池在調(diào)動join之前必須先調(diào)動close,調(diào)用close之后就不能再繼續(xù)添加新的進(jìn)程了 pp.close() pp.join() print('父進(jìn)程結(jié)束')
以上這篇python實(shí)現(xiàn)啟動一個外部程序,并且不阻塞當(dāng)前進(jìn)程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
