线程比进程的开销小
import time from multiprocessing import Process from threading import Thread def func(name): print(f"我是{name}") if __name__ == '__main__': start_time = time.time() p = Process(target=func, args=("子进程",)) # 创建一个子进程 p.start() # 开启子进程 p.join() # 等待子进程结束 print("子进程结束时间:", time.time() - start_time) start_time = time.time() t = Thread(target=func, args=("子线程",)) # 创建一个字线程 t.start() # 开启子线程 t.join() # 等待子线程结束 print("子线程结束时间:", time.time() - start_time)
执行结果:
我是子进程 子进程结束时间: 0.19001102447509766 我是子线程 子线程结束时间: 0.0010001659393310547
通过上面的结果,可以看出线程比进程的开销小很多。
能使用线程的尽量使用线程。
到底什么时候需要用到多进程,什么时候要用多线程
程序中具有非常多的逻辑计算的时候,选择多进程,当程序中存在大量的IO操作的时候,选择多线程。