#进程多进程



#进程多进程       



import socket
import time
from multiprocessing.pool import Pool #多进程


def blocking(pn): #页码
'''
发送数据, 接受请求
:param pn:
:return:
'''
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 = Pool(5) #开启进程 这是和线程的区别
for i in range(5):
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/8690155.html