多线程
D:\code\mutil_process下创建文件apply_2_program.py
#coding=utf-8
import time
# from selenium import webdriver
import threading
import os
def fun1(a):
print(a)
def fun2():
print(222)
def process_img():
os.system('python D:/code/mutil_process/2_program/process_img.py')
def mointer_img():
os.system('python D:/code/mutil_process/2_program/mointer_img.py')
threads = []
threads.append(threading.Thread(target=process_img)) #args为函数接受的参数,多个参数可以传入多个 args=(u'爱情买卖',u'爱情买卖')
threads.append(threading.Thread(target=mointer_img))
print(threads)
if __name__ == '__main__':
for t in threads:
t.setDaemon(True) #我拿来做selenium自动化模拟多个用户使用浏览器的时候,加了这个就启动不了,要去掉,原因找到了 : 加了这个是说明 主线程 执行完了 子线程也停止(无论是否执行完毕)
t.start()
t.join()
# print("all over %s" %ctime())
多进程
D:\code\mutil_process下创建文件apply_2_program_multiprocess.py
import time
import multiprocessing
import os
def process_img():
os.system('python D:/code/mutil_process/2_program/process_img.py')
def mointer_img():
os.system('python D:/code/mutil_process/2_program/mointer_img.py')
if __name__ == '__main__':
start = time.time()
p1 = multiprocessing.Process(target=process_img,)
p2 = multiprocessing.Process(target=mointer_img,)
# 启动子进程
p1.start()
p2.start()
# 等待fork的子进程终止再继续往下执行,可选填一个timeout参数
p1.join()
p2.join()
end = time.time()
在文件夹D:\code\mutil_process\2_program中新建文件
mointer_img.py
import time
with open("./2_program/test.txt", "w") as f:
pass
print("end")
process_img.py
import cv2
import numpy as np
import skimage.io as io
import matplotlib.pyplot as plt
# img = io.imread("1.png")
img = cv2.imread(r"D:\code\mutil_process\2_program\1.png")
# print(img.shape)
cv2.imwrite("./2_program/2.png", img)
print("process_img")
图片1.png