# 做一个简单的爬虫:
import threading
import time
import functools
from urllib.request import urlopen
# 写一个时间函数的装饰器
def timeit(f):
@functools.wraps(f)
def wrapper(*args,**kwargs):
start_time=time.time()
res=f(*args,**kwargs)
end_time=time.time()
print("%s函数运行时间:%.2f" % (f.__name__, end_time - start_time))
return res
return wrapper
def get_addr(ip):
url="http://ip-api.com/json/%s"%(ip)
urlobj=urlopen(url)
# 服务端返回的页面信息, 此处为字符串类型
pagecontent=urlobj.read().decode('utf-8')
# 2. 处理Json数据
import json
# 解码: 将json数据格式解码为python可以识别的对象;
dict_data = json.loads(pagecontent)
print("""
ip : %s
所在城市: %s
所在国家: %s
""" % (ip, dict_data['city'], dict_data['country']))
#不使用多线程
@timeit
def main1():
ips = ['12.13.14.%s' % (i + 1) for i in range(10)]
for ip in ips:
python中多线程与单线程的对比
最新推荐文章于 2023-04-25 19:52:37 发布
本文探讨了Python中多线程与单线程的性能对比,指出多线程在I/O密集型任务中能显著提高效率,但在CPU密集型任务中,由于GIL的存在,多线程可能表现得更慢。文章通过实例说明了多线程的优势所在。
摘要由CSDN通过智能技术生成