python多工與簡單程序

2021-10-01 23:10:45 字數 2184 閱讀 7999

例如英特爾公司的intel,i3,i5,i7,i9當時是i9最好,如果要細分,這裡大概說一下,比如intel® core™ i5-6200u cpu @ 2.30ghz中的2.30ghz代表一秒的計算次數,運算速度,越高越好。

在作業系統中不執行的程式被稱作為程式,但是當他被作業系統載入到記憶體中,執行起來,他就是乙個程序。那麼是否可以將乙個程式載入多次,導致有多個程序,但是程式只有乙個,比如qq,一台電腦可能不只是登入乙個賬號,可以登入很多賬號,這就構成了多程序。

任務目標我們讓明星不使用多程序先唱歌再跳舞

import time

defsing()

:'''明星在唱歌'''

for i in

range(3

):print

('---正在唱歌---'

) time.sleep(1)

defdance()

:'''明星在跳舞'''

for i in

range(3

):print

('---正在跳舞---'

) time.sleep(1)

if __name__ ==

'__main__'

: sing(

) dance(

)'''

執行結果:

---正在唱歌---

---正在唱歌---

---正在唱歌---

---正在跳舞---

---正在跳舞---

---正在跳舞---

'''

我們再使用程序讓明星邊唱歌邊跳舞

import time

import multiprocessing #匯入多程序模組

defsing()

:'''明星唱歌'''

for i in

range(3

):print

("---正在唱歌---"

) time.sleep(1)

defdance()

:'''明星跳舞'''

for i in

range(3

):print

("---正在跳舞---"

) time.sleep(1)

defmain()

: p1=multiprocessing.process(target=sing)

#建立程序p1,執行sing函式

p2=multiprocessing.process(target=dance)

#建立程序p2,執行dance函式

p1.start(

)#開始執行程序1

p2.start(

)#開始執行程序2

# 開啟了2個子程序 p1,p2

if __name__ ==

'__main__'

: main(

)'''

執行結果:

---正在唱歌---

---正在跳舞---

---正在唱歌---

---正在跳舞---

---正在唱歌---

---正在跳舞---

'''

結論:通過建立程序,執行相應的函式,進行多工操作

分析**:

主程式從mian()開始執行,也就是執行if _name_ == 『_main_』:

中的**塊。當執行p1.start()時,建立乙個子程序,p1子程序中的**和主程序相同,只是程式執行的開始時sing函式體。主程序執行到p2.start()時,同樣複製乙份主程式**從dance函式體開始執行。

多程序雖然提高了**的執行效率,但是多工耗費的資源還是比較大的,乙個程序就需要乙份系統的資源。

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

(1)就緒狀態

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

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

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

python 多工 程序

什麼是程序?程式是靜態的,當程式執行起來就叫做程序。程序是作業系統分配資源的基本單元。程序 執行緒的區別與優缺點 1.定義的不同 程序是系統進行資源分配的最小單位.執行緒是程序的乙個實體,是cpu進行排程的基本單位。執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源 如程式計數器,一組...

Python多工之程序

python通過多程序實現多工的幾種方法 只用在類unix linux系統中有效,windows系統中無效 fork函式呼叫一次,返回兩次 在父程序中返回值為子程序id,在子程序中返回值為0 import os ret os.fork if ret 父程序 print 主程序,pid format ...

Python 多工 程序池

高階程式設計技巧 學習筆記 1.1 為什麼要用程序池 當需要建立的子程序數量不多時,可以直接利用multiprocessing中的process動態生成多個程序,但是如果是上百甚至上千個目標,手動的去建立的程序的工作量巨大,此時就可以用到multiprocessing模組提供的pool方法。初始化 ...