進程:進程(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()
查看結果:

