Python多工 並行 併發

2021-09-10 21:39:25 字數 1757 閱讀 8416

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...