Python中的程序

2022-08-16 11:00:13 字數 792 閱讀 6817

多程序是真正的並行

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....