1.什麼是「多工」呢?單任務:簡單地說,就是作業系統可以同時執行多個任務
在**裡面,就是乙個程式有多個地方同時執行
打個比方,你一邊用著這瀏覽器上網,一邊在聽***,一邊在用word趕作業,這就是多工
2.單核cpu是怎麼解決多工的?
單核:意味著同一時刻只能執行一件事情
作業系統輪流讓各任務交替執行,任務1執行0.01秒,切換到任務2,任務2執行0.01,再切換到任務3,
執行0.01秒。。。。。這樣反覆的執行下去,每個任務都是交替執行的,但是由於cpu的執行速度實在是太快了,
我們感覺就像是所有任務都在同時執行一樣,這就是所謂的 「時間片輪轉」 。
3. 並行和併發
並行: 真的多工 (cpu的核數大於任務數量)
併發: 假的多工 (cpu的核數小於任務數量)
真正的並行執行多工只能在多核cpu上實現,但是,由於任務數量遠遠多於cpu的核心數量,所以,作業系統也會自動 把很多任務輪流排程到每個核心上執行。
import time
import threading
def dance():
for i in range(5):
print("---dancing---")
time.sleep(1)
def sing():
for i in range(5):
print("---singing---")
time.sleep(1)
def main():
print(time.ctime())
dance()
sing()
print(time.ctime())
if __name__ == '__main__':
main()
執行的結果為: 先把dance執行完花費5秒鐘, 再花費5秒鐘執行完sing, 一共花費10秒鐘
多工:
import time
import threading
def dance():
for i in range(5):
print("---dancing---")
time.sleep(1)
print(time.ctime())
def sing():
for i in range(5):
print("---singing---")
time.sleep(1)
print(time.ctime())
def main():
t1 = threading.thread(target = dance)
t2 = threading.thread(target = sing)
t1.start()
t2.start()
if __name__ == '__main__':
main()
執行的結果為: 兩個任務同步執行,每次花費1秒,共花費5秒,從下圖的測試時間可以看出兩個任務是同步執行的。
多工(併發 並行) 多程序學習
一 多工的兩種執行方式 併發 單核cpu中,執行多個任務時,叫做併發任務 任務數大於cpu核數,併發執行任務 並行 多核cpu中,執行多個任務時,各任務在不同cpu執行下的過程,叫做並行 同一時間內兩個軟體同時執行,只有多核cpu多個軟體一起執行。任務數小於等於cpu核數,並行執行多工 python...
Python多工併發程式設計課程介紹
今天要介紹的是博學谷的python多工併發程式設計課程,它是專門為初級python學習人士量身打造的python語法高階課程。本課程主要講解多執行緒與多程序,課程將多執行緒 多程序的建立,互斥鎖,死鎖,集全域性變數等問題通過案例一一攻克。課程講解風趣幽默,深入淺出,通俗易懂,為以後成為python開...
python 多工回顧
回顧一下 python的多工 coding utf 8 import threading 執行緒 import gevent 協程 from time import sleep,ctime from multiprocessing import process 程序 from multiproces...