1.实现python同时运行多个脚本
2.对比运行时间
仅记录我的踩坑过程,便于以后回溯错误,着急的直接看实现过程:
参考链接1:python多进程多线程,多个程序同时运行
这个讲的非常好,深入浅出,计算机小白的我马上理解了。但是这个链接给的代码的例子让我觉得更像是同时运行两个函数,我要做的时同时运行两个py文件。
参考链接2:python脚本如何同时运行多个
于是我尝试写了两个程序。导入一个脚本文件
代码如下:
import sys
import task1
import task2
sys.modules['task1'].__dict__.clear()
sys.modules['task2'].__dict__.clear()
task1.py
print("This is task1!")
task2.py
print("This is task2!")
但是输出的结果与只运行task1脚本的结果相同,也没有输出This is task1!
任务紧急,先不想为啥了 看看有没有别的办法
参考链接3:解决:python同时执行多个.py文件(挂起多个程序)——线程并发
这个是线程并发,他直接在一个线程里运行一个py脚本。其实上面的进程也能这么做,直接把进程的函数主题改成运行文件就可以了。
另:这个链接里包含以上几个链接的大部分内容:python教程目录
着急直接看这里:
根据思考过程,直接运用多进程,在调用的函数的函数主体里调用对应的脚本,代码如下:
import multiprocessing
import time
import os
def fun1(num):
os.system('python D:\\cubemos_SDK\\SkeletonTracking\\samples\\python\\task1.py')
#print('1进程PID', os.getpid())
#print('1进程父进程编号', os.getppid())
for i in range(num):
print('1....\n')
time.sleep(0.5)
def fun2(num):
os.system('python D:\\cubemos_SDK\\SkeletonTracking\\samples\\python\\task2.py')
# print('2进程PID', os.getpid())
# print('2进程父进程编号', os.getppid())
for i in range(num):
print('2....\n')
time.sleep(0.5)
# 1. 导入进程包
if __name__ == '__main__':
sing_process = multiprocessing.Process(target=fun1, args=(5,))
dance_process = multiprocessing.Process(target=fun2, kwargs={'num':2}) # target
#3. 启动进程
sing_process.start()
dance_process.start()
就可以看到两个脚本同时运行了。
接下来想看一下task1和task2单独完成的时间和task1、task2同时运行的时间。
参考链接:python查看程序运行时间
import time
start =time.clock()
#中间写上代码块
end = time.clock()
print('Running time: %s Seconds'%(end-start))
task1运行的时间:
2.7773832 Seconds
task2运行的时间:
1.0565337 Seconds
在test多进程运行task1和task2时:
task1:2.8532390999999997 Seconds
task2:1.0520154 Seconds
test:0.0086039 Seconds
我再运行了一次test,时间比上次更短了一点。可以看到多进程并没有特别影响简单程序的速度。
下一步就是要实现调用一个摄像头或同一张图片,同时实现二维码识别和文字识别。