上次是用的 多线程 上传 图片 我要改为用多进程 试一试
然后
# -*- coding:utf-8 *- # auth : cy # update : import getpass import os import random import multiprocessing from configparser import ConfigParser from time import time, sleep from Page.api.BuilderBaseFunc import get_ws_driver from Page.api.builder_api import login, upload_images_process from Page.image_conversion_md5 import get_md5, get_folder_file_path from run_path import setting_path def multi_process_upload_images(process_num=None): stat_time = time() file_path = r'C:\Users\%s\Desktop\test_photo' % (str(getpass.getuser())) config = ConfigParser() config.read(setting_path()) ws_url = config.get('testUrl', 'ws_test_url') username = config.get('labor', 'Wuhuigang') password = '123456' ws_driver = get_ws_driver(ws_url) sid = login(ws_driver, username, password) all_images_path_list = get_folder_file_path(file_path) print(len(all_images_path_list)) md5_list = get_md5(all_images_path_list) p = multiprocessing.Pool(process_num) for i in range(len(all_images_path_list)): p.apply_async(upload_images_process, args=(sid['data']['sid'], md5_list[i], all_images_path_list[i])) p.close() p.join() print('run time ', time()-stat_time) def run_process(name): print('run child process %s (%s)...' % (name, os.getpid())) def long_time_task(name): print('run task %s (%s)' % (name, os.getpid())) start = time() sleep(random.random()*3) end = time()-start print('task run %s time (%0.2f)'% (name, end)) if __name__ == '__main__': multi_process_upload_images(5) # print('parent process', os.getpid()) # p = multiprocessing.Pool(2) # 线程数 # for i in range(5): # p.apply_async(long_time_task, args=('cy',)) # print('wait for all subprocess done..') # p.close() # p.join() # print('all subprocess done..') # p = multiprocessing.Process(target=run_process, args=('cy',)) # print('child will start..') # p.start() # p.join() # print('child process end')然后就搞定了 多进程 的 优缺点 慢慢去发现吧