python多线程threading.Thread实现:
# 假设这是网络程序,请求数据
def request_data(num):
time.sleep(num) # 模拟网络操作
# 单线程任务
def main_single_thread():
for i in range(100):
request_data()
def main_multi_threads(): # 多线程程序
thread_list = []
for i in range(2):
t = threading.Thread(target=request_data, args=(i,))
t.start()
thread_list.append(t)
for i in thread_list: # 循环 join()方法可以让主线程等待所有的线程都执行完毕
i.join()
if __name__ == '__main__':
# 单线程的时间计算
# start_time = time.time()
# main_single_thread()
# end_time = time.time()
# print('单线程耗时:{:.4f}s'.format(end_time - start_time))
# 多线程的时间计算
start_time = time.time()
main_multi_threads()
end_time = time.time()
print('多线程耗时:{:.4f}s'.format(end_time - start_time))
threading.Thread(target=function, args=(参数,))
第一个参数target是函数名,第二个参数args是一个元组,如果只传递一个值,就只需要i, 如果需要传递多个参数,那么还可以继续传递下去其他的参数。
注:其中的逗号不能少,少了就不是元组了,就会报错。