单/多线程效率对比
线程效率:
1、CPU计算密集型:单线程 比多线程 快
2、网络IO密集型:多线程 比 单线程 快
import requests
import threading
import time
num = 0
def func1():
for i in range(100):
# global num
# num += 1
requests.get('http://127.0.0.1:8000/projects/onedata/')
def func2():
for i in range(100):
# global num
# num += 1
requests.get('http://127.0.0.1:8000/projects/onedata/')
def main():
t1 = threading.Thread(target=func1)
t2 = threading.Thread(target=func2)
s_time = time.time()
t1.start()
t2.start()
t1.join()
t2.join()
e_time = time.time()
print(e_time - s_time)
if __name__ == '__main__':
# main()
s_time = time.time()
func1()
func2()
e_time = time.time()
print(e_time - s_time)
''''
CPU计算:
2个线程:0.0001761913299560547
单线程:1.1682510375976562e-05
网络io:
2个线程:2.881053924560547
单线程:3.6266140937805176
'''