args_list
中每一项要么是一个单独的变量,要么是一个2个元素的元组,该元组第1项是位置参数的列表,该元组的第2项是关键参数的字典(很绕口,但最重要)def save_callback(request, result):
# 第1个参数是request,可以访问request.requestID
# 第2个参数是request执行完的结果
print(request.requestID, result)
with open('result.txt', 'a') as f:
f.write(result + '\n')
def get_user_info(uid, sex, name, age):
time.sleep(0.3)
return "{0},{1},{2},{3}".format(uid, sex, name, age)
if __name__ == '__main__':
num = 100
para_list = [[i, 'male'] for i in range(1, num)]
users = list()
for i in range(1, num):
user = {'name'.format(i): 'user{0}'.format(i),
'age': i}
users.append(user)
params = zip(para_list, users)
# print(params)
# 形如[([1, 'male'], {'age': 1, 'name': 'user1'}), ...]的参数列表
pool_size = 10
pool = threadpool.ThreadPool(pool_size)
requests = threadpool.makeRequests(get_user_info, params, save_callback)
[pool.putRequest(req) for req in requests]
pool.wait()
本系列文章和代码已经作为项目归档到github,仓库地址:jumper2014/PyCodeComplete。大家觉得有帮助就请在github上star一下,你的支持是我更新的动力。什么?你没有github账号?学习Python怎么可以没有github账号呢,快去注册一个啦!