python3 multi threading 调用上传图片的api 笔记

小伙伴 并发上传 图片有问题 所以看了下threading

def thread_work(name):
    print('a is run %s is %s' % (name, threading.current_thread()))
    print('start')
    for i in range(10):
        print(i)
        sleep(0.3)
    print('stop')print(threading.active_count())  # 查看有多少线程在执行
print(threading.enumerate())  # 查看那个线程在执行
print(threading.current_thread())  # 查看正在运行的线程
print('1')
add_threading1 = threading.Thread(target=thread_work, name='ONE', args=('cy',))  # 新增加一个线程 线程名字是 ONE 
add_threading2 = threading.Thread(target=thread_work, name='TWO', args=('cy',))  # 新增加一个线程 线程名字是 TWO 
add_threading2.start() # 启动线程
add_threading1.start() # 启动线程
print(threading.active_count())
print(threading.enumerate())
add_threading1.join() # 等待线程1结束 执行主线程
add_threading2.join()# 等待线程2结束 执行 主线程
print('nb') 

上面的可以初步了解

# -*- coding:utf-8 *-
# auth : cy
# update :
import getpass
import threading
from configparser import ConfigParser
from queue import Queue
from time import time
from Page.api.BuilderBaseFunc import get_ws_driver
from Page.api.builder_api import upload_images, login
from Page.image_conversion_md5 import get_md5, get_folder_file_path
from run_path import setting_path


def multi_threading_upload_images(threads_num=10):
    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)
    try:
        threads_num = int(threads_num)
    except Exception as e:
        print(e)
        print('please input int')

    all_images_path_list = get_folder_file_path(file_path)
    thread_run_num = len(all_images_path_list) // threads_num  # 剩余个数
    q = Queue()
    threads = []
    for i in range(threads_num):
        print(threading.active_count(), 'start', i)  # 查看有多少线程在执行
        t = None
        if i == 0:
            md5_list = get_md5(all_images_path_list[0:thread_run_num])
            image_path = all_images_path_list[0:thread_run_num]
            t = threading.Thread(target=upload_images, name=1, args=(sid['data']['sid'], md5_list, image_path, q))
            print(threading.active_count(), '000')
        elif i == threads_num-1:
            image_path = all_images_path_list[i*(thread_run_num-1):]
            md5_list = get_md5(all_images_path_list[i*(thread_run_num-1):])
            t = threading.Thread(target=upload_images, name=1, args=(sid['data']['sid'], md5_list, image_path, q))
            print(threading.active_count(), 'end')
        elif 0 < i < threads_num-1:
            image_path = all_images_path_list[i*thread_run_num:(i+1)*thread_run_num]
            md5_list = get_md5(all_images_path_list[i*thread_run_num:(i+1)*thread_run_num])
            t = threading.Thread(target=upload_images, name=1, args=(sid['data']['sid'], md5_list, image_path, q))
            print(threading.active_count(), 'zhongjian')
        else:
            pass
        t.start()
        threads.append(t)

    for thread in threads:
        thread.join()
    results = []
    for _ in range(threads_num):
        results.append(q.get())
    print('end_time', time()-stat_time)


if __name__ == '__main__':
    multi_threading_upload_images(16)




这个是 调到用多线程 上传图片 然后发现效果真的不咋样 同时运行的就一个线程 ,对于python 同时并发这个美丽的传说···只能·······唉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值