进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,简单来说就是几个cpu核心就可以开几个进程
线程:线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位,简单来说就是一个进程可以开很多线程。
而python中对于多进程的优化据说不是太好,在基础库里提供了threading(线程),与multiprocessing(进程)的基础库
1、多进程
## 多线程 import threading ## 线程执行函数 def func(): print('thread:',threading.current_thread()) ## 线程池 threads = [] ## 添加线程 for _ in range(5): threads.append(threading.Thread(target=func)) ## 启动线程 for thread in threads: thread.start() thread.join()
结果:
2、多线程
## 多进程 import multiprocessing ## 进程需要执行的函数 def func(): print('process',multiprocessing.current_process()) ## 有几个cpu核心添加几个进程 for _ in range(2): multiprocessing.Process(target=func).start()
结果:
3、多进程与多线程
import multiprocessing import threading import time ## 线程执行的函数 def func(): print('thread:',threading.current_thread()) print(time.time(),'\n') ## 线程执行的函数 def bar(): ## 线程池 threads = [] ##这里添加2个线程 for _ in range(2): threads.append(threading.Thread(target=func)) ## 启动线程 for thread in threads: thread.start() thread.join() ## 进程池 multiprocess = [] ## 有几核心cpu启动几个 for i in range(2): multiprocess.append(multiprocessing.Process(target=bar)) ## 启动进程 for j in multiprocess: j.start() j.join()
查看结果: