多程序是真正的並行
python中的gil,多執行緒不是cpu密集型程式的好的選擇
多程序可以繞過gil
多程序可以完全獨立的程序環境中執行程式,可以充分利用多處理器
process類遵循了thread類的api.常用的程序執行緒方法大致相同
所以windows下建立子程序要放入__name__
=='__main__'
中執行
名稱說名
pid檢視程序id,等同於os.getpid()
ppid
檢視父程序的id(parent pid)
exitcode
程序的退出狀態碼
terminate()
終止指定的程序
multiprocessing提供了共享記憶體,伺服器程序來共享資料,還提供了queue佇列,pipe管道用於程序間通訊.
通訊方式不同:
1.多程序就是啟動多個直譯器程序,程序同新建必須序列化,反序列化,所以不能序列化的資料不能通訊
2.資料的執行緒安全問題:
由於每個程序中沒有實現多執行緒,gil就沒什麼用了
multiprocessing.pool是程序池類
名稱說明
阻塞執行,導致主線程執行其他子程序就像乙個個執行
close()
關閉池,池不能再接受新的任務
terminate()
結束工作程序,不再處理未處理的任務
join()
主程序阻塞等待子程序的退出,join方法要在close或terminate之後使用
python中的程序 Python中程序
程式 程式 編寫完的 稱為程式。程序程序 又稱重量級程序,正在執行中的程式稱為程序。程序的執行會占用記憶體等資源。多個程序同時執行時,每個程序的執行都需要由作業系統按一定的演算法 rr排程 優先數排程演算法等 分配記憶體空間。並行與併發 並行 在多核系統中,每個cpu執行乙個程序,可以理解為cpu的...
python中的程序
乙個程式執行起來後,用到的資源 稱之為程序,它是作業系統分配資源的基本單元。乙個程序中至少有乙個執行緒。1 多程序之間不會修改全域性變數,多程序之間共享資源用 訊息佇列 先進先出,後進後出 queue。2 結論 每個子程序在執行前都會複製乙份主程序 多程序之間特別占用資源。建立程序 1 匯入mult...
Python中的程序
import os import time from multiprocessing import process nums 1,2,3 def wroker1 子程序要執行的 print 程序1中的記憶體位址 s id nums print in process1 pip d,nums s os....