多工實現方式 一

2021-10-01 23:58:09 字數 874 閱讀 9971

執行起來的應用程式就稱之為程序。也就是說當程式不執行的時候我們稱之為程式,當 程式執行起來他就是乙個程序。通俗的理解就是不執行的時候是程式,執行起來就是程序。 程式和程序的對應關係是:程式只有乙個,但是程序可以有多個。

程序是系統進行資源分配和排程的基本單位。

在程式執行的過程中,由於被作業系統的排程演算法控制,程式會進入幾個狀態:就緒,執行 和阻塞。

(1)就緒(ready)狀態

當程序已分配到除cpu以外的所有必要的資源,只要獲得處理機便可立即執行,這時的程序 狀態稱為就緒狀態。

(2)執行/執行(running)狀態當程序已獲得處理機,其程式正在處理機上執行,此時的 程序狀態稱為執行狀態。

(3)阻塞(blocked)狀態正在執行的程序,由於等待某個事件發生而無法執行時,便放棄處 理機而處於阻塞狀態。引起程序阻塞的事件可有多種,例如,等待i/o完成、申請緩衝區不 能滿足、等待信件(訊號)等

(1). 建立 queue佇列物件 q = multiprocessing.queue(3) # 3表示只能存放3個資料

引數 :maxsize是佇列中允許的最大項數。如果省略此引數,則無大小限制。

返回值q 是佇列物件

(2). put()方法 ,向佇列中存放資料。如果佇列已滿,此方法將阻塞至有空間可用為止。

(3). get()返回q中的乙個專案。如果q為空,此方法將阻塞,直到佇列中有專案可用為止。

(4). get_nowait(): 不等待,直接丟擲異常

(5). full()如果q已滿,返回為true

(6). q.empty() 如果呼叫此方法時 q為空,返回true。

多工實現方式 三

當多個執行緒幾乎同時修改某乙個共享資料的時候,需要進行同步控制 執行緒同步能夠保證多個執行緒安全訪問競爭資源,最簡單的同步機制是引入互斥鎖。互斥鎖為資源引入乙個狀態 鎖定 非鎖定。某個執行緒要更改共享資料時,先將其鎖定,此時資源的狀態為 鎖定 其他執行緒不能更改 直到該執行緒釋放資源,將資源的狀態變...

python多工實現方法之協程

多工的實現方式,使用下面方法中的乙個或者若干個進行組合 1 多程序 2 多執行緒 3 協程 三種方式的實現和資源占用各有不同,其中資源占用和實現所需的系統開銷 記憶體 cpu等 逐漸減少,實現難度依次降低。可以簡單的認為 乙個程序可以包含多個執行緒,乙個執行緒包含多個協程。多工實現方式的選擇 cpu...

實現多工

多工介紹 簡單來說就是作業系統可以同時執行過個任務 單核cpu作業系統會讓各個任務交替執行 真正的多工只能在多核cpu上實現,也就是並行和併發2 併發 併發 指的是任務數多於cpu核數,通過作業系統的各種任務排程演算法,實現用多個任務 一起 執行 實際上總有一些任務不在執行,因為切換任務的速度相當快...