多工程式設計:
通過應用程式利用多個計算機核心達到多工同時執行的
目的,從此來提公升程式執行效率
多程序,多執行緒
程序:程式在計算機中一次執行的過程
程式:靜態的描述,不占有計算機資源
程序:是乙個動態的過程,占有cpu,記憶體等計算機資源
有一定的生命週期
*同乙個程式,每次執行都是不同的程序,因為分配的計算機資源不同
1,程序的建立流程:
使用者空間執行程式發起程序建立申請--->
呼叫作業系統核心介面建立程序--->
分配計算機資源,確定程序狀態--->
將新的程序給使用者使用
程序的狀態:
三態:
就緒態:程序具備執行條件,等待系統分配處理器執行
執行態:程序占有cpu處於執行的狀態
等待態:又稱為阻塞態,睡眠態,指程序暫時不具備運
行的條件,需要阻塞等待 (sleep accept...)
五態:新建態:建立乙個程序,獲取資源,直接表現為執行乙個程式,
或者在程式中建立新的程序
就緒態:
執行態:
等待態:
終止態:程序執行結束,資源**過程
2,多個程序,如何占用cpu:
*乙個核心,同一時刻,只能執行乙個任務
*多個程序對核心資源進行爭奪,作業系統決定哪個程序占有計算機核心
*占有計算機核心的程序我們稱為該程序占有cpu的時間片
3,程序有哪些資訊,如何儲存
pcb (程序控制塊): 在*nix系統中程序建立後,
會在記憶體開闢一塊空間存放程序的相關資訊,稱為pcb
檢視程序資訊 ps -aux
資訊:使用者 pid 占有記憶體 優先順序 等
pid : 在作業系統中程序的唯一標誌,是大於0的整數,由系統自動分配
多執行緒 多程序?
這幾天在思考如何改進原型在多個客戶端的情況下的效能,特地溫習了一下多程序和多執行緒的一些知識。在linux下程序的程序和執行緒在核心看來區別很小,都是乙個可排程單元,都擁有記憶體管理結構等等。但是關鍵的差別是程序的資源都是私有的,而執行緒則是和別人共享的,所以執行緒的上下文切換可能比程序的開銷要小很...
多執行緒 多程序
是什麼?能幹什麼?單執行緒情況下,執行效率低。系統的資源沒有得到充分利用。計算密集型 運算量比較大 io密集型 cpu空閒,輸入輸出較多 怎麼幹?爬蟲 io密集型 多執行緒 橫向 所有的程式的執行都在乙個執行緒中,程式啟動時,啟動多執行緒,每個執行緒跑同樣的 縱向 將程式進行拆分,每個執行緒跑特定的...
多執行緒 多程序
執行緒同步 lock rlock semaphores condition concurrent執行緒池編碼 多程序程式設計 multiprocessing 程序間通訊 gil global interpreter lock 全域性直譯器鎖 python中的乙個執行緒對應於c語言中的乙個執行緒 gi...