import logging import datetime FORMAT = '%(threadName)s %(thread)d %(message)s' logging.basicConfig(format=FORMAT, level=logging.INFO) start = datetime.datetime.now() def calc(): sum = 0 for _ in range(100000000): sum += 1 calc() calc() calc() calc() calc() delta = (datetime.datetime.now() - start).total_seconds() logging.info(delta)
import threading import logging import datetime FORMAT = '%(threadName)s %(thread)d %(message)s' logging.basicConfig(format=FORMAT, level=logging.INFO) start = datetime.datetime.now() def calc(): sum = 0 for _ in range(100000000000): sum += 1 lst = [] for i in range(5): t = threading.Thread(target=calc, ) lst.append(t) t.start() for i in lst: i.join() delta = (datetime.datetime.now() - start).total_seconds() logging.info(delta)
两个测试结果来看,在CPython中,对于CPU密集型而言,多线程没特别大的优势,和一个线程的执行时间相差不是特别大
下一篇:带你学python基础:模块和包