使用多线程与不使用多线程的区别
不使用多线程所需时间:
import time
from urllib.request import urlopendef timeit(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 resreturn wrapperdef get_addr(ip):url = "/%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 main():ips = ['12.13.14.%s' % (i + 1) for i in range(10)]for ip in ips:get_addr(ip)if __name__ == '__main__':main()
使用多线程所需时间
import threading
import time
from urllib.request import urlopendef timeit(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 resreturn wrapperdef get_addr(ip):url = "/%s" % (ip)urlObj = urlopen(url)# 服务端返回的页面信息, 此处为字符串类型pageContent = urlObj.read().decode('utf-8')# 2. 处理Json数据import json# 解码: 将json数据格式解码为python可以识别的对象;dict_data = json.loads(pageContent)print("""%s所在城市: %s所在国家: %s""" % (ip, dict_data['city'], dict_data['country']))@timeit
def main():ips = ['12.13.14.%s' % (i + 1) for i in range(10)]for ip in ips:t = threading.Thread(target=get_addr, args=(ip, ))t.start()if __name__ == '__main__':main()
使用多线程与不使用多线程的区别
不使用多线程所需时间:
import time
from urllib.request import urlopendef timeit(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 resreturn wrapperdef get_addr(ip):url = "/%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 main():ips = ['12.13.14.%s' % (i + 1) for i in range(10)]for ip in ips:get_addr(ip)if __name__ == '__main__':main()
使用多线程所需时间
import threading
import time
from urllib.request import urlopendef timeit(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 resreturn wrapperdef get_addr(ip):url = "/%s" % (ip)urlObj = urlopen(url)# 服务端返回的页面信息, 此处为字符串类型pageContent = urlObj.read().decode('utf-8')# 2. 处理Json数据import json# 解码: 将json数据格式解码为python可以识别的对象;dict_data = json.loads(pageContent)print("""%s所在城市: %s所在国家: %s""" % (ip, dict_data['city'], dict_data['country']))@timeit
def main():ips = ['12.13.14.%s' % (i + 1) for i in range(10)]for ip in ips:t = threading.Thread(target=get_addr, args=(ip, ))t.start()if __name__ == '__main__':main()