没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
示例1 我们将要请求五个不同的url: 单线程 import time import urllib2 defget_responses(): urls=[ ‘http://www.baidu.com', ‘http://www.amazon.com', ‘http://www.ebay.com', ‘http://www.alibaba.com', ‘//www.jb51.net' ] start=time.time() forurlinurls: printurl resp=urllib2.urlopen(url)
资源推荐
资源详情
资源评论
深入理解深入理解 Python 中的多线程中的多线程 新手必看新手必看
示例示例1
我们将要请求五个不同的url:
单线程
import time
import urllib2
defget_responses():
urls=[
‘http://www.baidu.com',
‘http://www.amazon.com',
‘http://www.ebay.com',
‘http://www.alibaba.com',
‘//www.jb51.net'
] start=time.time()
forurlinurls:
printurl
resp=urllib2.urlopen(url)
printresp.getcode()
print”Elapsed time: %s”%(time.time()-start)
get_responses()
输出是:
http://www.baidu.com200
http://www.amazon.com200
http://www.ebay.com200
http://www.alibaba.com200
//www.jb51.net200
Elapsed time:3.0814409256
解释:
url顺序的被请求
除非cpu从一个url获得了回应,否则不会去请求下一个url
网络请求会花费较长的时间,所以cpu在等待网络请求的返回时间内一直处于闲置状态。
多线程多线程
import urllib2
import time
from threading import Thread
classGetUrlThread(Thread):
def__init__(self, url):
self.url=url
super(GetUrlThread,self).__init__()
defrun(self):
resp=urllib2.urlopen(self.url)
printself.url, resp.getcode()
defget_responses():
urls=[
‘http://www.baidu.com',
‘http://www.amazon.com',
‘http://www.ebay.com',
‘http://www.alibaba.com',
‘//www.jb51.net'
] start=time.time()
threads=[] forurlinurls:
t=GetUrlThread(url)
threads.append(t)
t.start()
fortinthreads:
t.join()
print”Elapsed time: %s”%(time.time()-start)
资源评论
weixin_38713801
- 粉丝: 6
- 资源: 930
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功