1. 程式人生 > >python之路——進程

python之路——進程

實現 roc 進程池 復雜 str 執行 eva 單獨 指令

閱讀目錄

  • 理論知識
    • 操作系統背景知識
    • 什麽是進程
    • 進程調度
    • 進程的並發與並行
    • 同步\異步\阻塞\非阻塞
    • 進程的創建與結束
  • 在python程序中的進程操作
    • multiprocess模塊
    • 進程的創建和multiprocess.Process
    • 進程同步控制 —— 鎖\信號量\事件
      (multiprocess.Lock、multiprocess.Semaphore、multiprocess.Event)
    • 進程間通信 —— 隊列和管道(multiprocess.Queue、multiprocess.Pipe)
    • 進程間的數據共享 —— multiprocess.Manager
    • 進程池和multiprocess.Pool
回到頂部

理論知識

操作系統背景知識

回到頂部

顧名思義,進程即正在執行的一個過程。進程是對正在運行程序的一個抽象。

進程的概念起源於操作系統,是操作系統最核心的概念,也是操作系統提供的最古老也是最重要的抽象概念之一。操作系統的其他所有內容都是圍繞進程的概念展開的。

所以想要真正了解進程,必須事先了解操作系統,點擊進入

PS:即使可以利用的cpu只有一個(早期的計算機確實如此),也能保證支持(偽)並發的能力。將一個單獨的cpu變成多個虛擬的cpu(多道技術:時間多路復用和空間多路復用+硬件上支持隔離),沒有進程的抽象,現代計算機將不復存在。

必備的理論基礎:

技術分享圖片
#一 操作系統的作用:
    1:隱藏醜陋復雜的硬件接口,提供良好的抽象接口
    2:管理、調度進程,並且將多個進程對硬件的競爭變得有序

#二 多道技術:
    1.產生背景:針對單核,實現並發
    ps:
    現在的主機一般是多核,那麽每個核都會利用多道技術
    有4個cpu,運行於cpu1的某個程序遇到io阻塞,會等到io結束再重新調度,會被調度到4個
    cpu中的任意一個,具體由操作系統調度算法決定。
    
    2.空間上的復用:如內存中同時有多道程序
    3.時間上的復用:復用一個cpu的時間片
       強調:遇到io切,占用cpu時間過長也切,核心在於切之前將進程的狀態保存下來,這樣
            才能保證下次切換回來時,能基於上次切走的位置繼續運行
技術分享圖片 回到頂部

什麽是進程

進程(Process)是計算機中的程序關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎。在早期面向進程設計的計算機結構中,進程是程序的基本執行實體;在當代面向線程設計的計算機結構中,進程是線程的容器。程序是指令、數據及其組織形式的描述,進程是程序的實體。

狹義定義:進程是正在運行的程序的實例(an instance of a computer program that is being executed)。 廣義定義:進程是一個具有一定獨立功能的程序關於某個數據集合的一次運行活動。它是操作系統動態執行的基本單元,在傳統的操作系統中,進程既是基本的分配單元,也是基本的執行單元。

python之路——進程