python多线程threadpool传入多个参数并获取方法返回值

python多线程

通过创建线程池threadpool的方法,向方法中传入多个参数,同时获取方法的返回值。threadpool是第三方模块,需要先进行安装,
pip instll threadpool

import threadpool
#多线程执行的方法
def retry_read_ApsStatus(pairDate,pairShift,site,flag):
#flag返回的值为1或0
#方法省略	
        return flag
#回调函数,接收的参数(请求本身,和请求工作函数执行结果        
def get_result(request,result):
    global results
    results.append(result)

results = []
# 声明可容纳五个线程的池
pool = threadpool.ThreadPool(3)
# 创建线程运行内容请求列表(线程工作函数,线程工作参数列表,回调函数)
list_var1 = [parse_date, parse_shift, 2080, ne_flag]
list_var3 = [parse_date, parse_shift, 2090, sz_flag]
list_var2 = [parse_date, parse_shift, 5060, xb_flag]
par_list = [(list_var1, None), (list_var2, None), (list_var3, None)]
re = threadpool.makeRequests(retry_read_ApsStatus, par_list, get_result)

#将每一个线程放到线程池
res = [pool.putRequest(req) for req in re]
pool.wait()
print("多线程返回结果")
print(results)
#多线程返回结果
#[1, 1, 1]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章