多线程多进程

# 多线程、多进程
# 1、线程是程序里面最小的执行单元
# 2、进程是资源的集合
# 线程是包含在一个进程里面的,一个进程可以有多个进程
# 一个进程里面默认有一个线程
# import threading,time
#
# def run():
# time.sleep(3) #干活需要3S
# print('哈哈哈')
#
# # for i in range(5): #串行
# # run()
#
# for i in range(5): #并行
# t=threading.Thread(target=run) #实例化了一个线程
# t.start()
#
# # 多线程,就是N个线程一起在干活




# urls = {
# 'besttest':'http://www.besttest.cn',
# 'niuniu':'http://www.nnzhp.cn',
# 'dsx':'http://www.imdsx.cn',
# 'cc':'http://www.cc-na.cn',
# 'alin':'http://www.limlhome.cn'
# }
#
#
# import requests,threading,time
# def down_html(file_name,url):
# res=requests.get(url).content #content二进制的方式
# open(file_name+'.html','wb').write(res) #wb二进制方式打开
#
#
# # # 1、串行
# # start_time=time.time()
# # for k,v in urls.items():
# # down_html(k,v)
# # end_time=time.time()
# #
# # run_time=end_time-start_time
# # print('下载共花了XX时间',run_time)
#
# # 2、并行
# start_time=time.time()
# for k,v in urls.items(): #5次
# # 多线程的函数如果传参的话,必须得用args
# t=threading.Thread(target=down_html,args=(k,v))
# t.start()
#
# #共6个线程
# #进程里面默认有一个线程,这个线程叫做主线程
# end_time=time.time()
# run_time=end_time-start_time
# print('下载共花了XX时间',run_time)





urls = {
'XX1':'http://www.XXX.cn',
'XX2':'http://www.XXX.cn',
'XX3':'http://www.iXX.cn',
'XX4':'http://www.XXa.cn',
'XX5':'http://www.limlhome.cn'
}


import requests,threading,time
data={}
def down_html(file_name,url):
start_time = time.time()
res=requests.get(url).content #content二进制的方式
open(file_name+'.html','wb').write(res) #wb二进制方式打开
end_time = time.time()
run_time = end_time - start_time
# print(run_time,url) #看哪个url下载的时间最长
data[url]=run_time

# 1、串行
# start_time=time.time()
# for k,v in urls.items():
# down_html(k,v)
# end_time=time.time()
#
# run_time=end_time-start_time
# print('下载共花了XX时间',run_time)


# 2、并行
threads=[]
start_time=time.time()
for k,v in urls.items(): #5次
# 多线程的函数如果传参的话,必须得用args
t=threading.Thread(target=down_html,args=(k,v))
t.start()
threads.append(t)

for t in threads: #主线程循环等待5个子线程执行结束
t.join()
print(data)


#共6个线程
#进程里面默认有一个线程,这个线程叫做主线程
end_time=time.time()
run_time=end_time-start_time
print('下载共花了XX时间',run_time)

猜你喜欢

转载自www.cnblogs.com/jiadan/p/9120827.html