#线程 多线程



#线程 多线程      



import socket
import time
from multiprocessing.pool import ThreadPool

def blocking(pn): #页码
sock = socket.socket()
url = 'www.baidu.com'
port = 80
sock.connect((url,port)) #请求百度
request = 'GET {} HTTP/1.0\r\nHost: www.baidu.com\r\n\r\n'.format('/s?wd={}'.format(pn))
sock.send(request.encode()) #编码发送 rrequest的内容

response = b''
inf = sock.recv(1024)
while inf: #因为一次接收不完, 所以循环接收
response += inf
inf = sock.recv(1024)
#print(response.decode()) #解码打印
return response


#blocking(1)

def block_way():
pool = ThreadPool(10) #开启线程
for i in range(10):
pool.apply_async(blocking,args=(i,)) #把需要执行的函数放到 这个线程里面去 args值得是参数
pool.close()
pool.join()

if __name__ == '__main__':
start_time = time.time()
block_way()
print("请求10次耗时为:{}".format(time.time() - start_time)) #字符串拼接


原文地址:https://www.cnblogs.com/yuanjia8888/p/8690157.html