最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解python程序中的多任務(wù)

 更新時間:2020年09月16日 08:36:41   作者:小名叫小明  
這篇文章主要介紹了python程序中多任務(wù)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下

現(xiàn)實(shí)生活中,有很多場景中的事情是同時進(jìn)行的,比如開車的時候,手和腳共同來駕駛汽車,再比如唱歌跳舞也是同時進(jìn)行的。

以上這些可以理解為多任務(wù)。那在程序中怎么能做到多任務(wù),它有什么好處?

接下來我們來看看沒有多任務(wù)的程序是什么效果。

import time


def sing():
  for i in range(5):
    print("正在唱...")
    time.sleep(1)


def dance():
  for i in range(5):
    print("正在跳...")
    time.sleep(1)


def main():
  sing()
  dance()


if __name__ == "__main__":
  main()

運(yùn)行結(jié)果:

這個程序執(zhí)行需要10秒鐘,但是如果唱歌和跳舞能同時執(zhí)行的話,只需要5秒鐘就可以了。

沒有多任務(wù)的時候,想一起執(zhí)行上面的多個函數(shù)是做不到的,我們要學(xué)習(xí)的多任務(wù)就是多個函數(shù)(唱歌和跳舞)一起執(zhí)行。

接下來我們來實(shí)現(xiàn)簡單的多任務(wù)。

大家暫時不用關(guān)系代碼怎么寫,后續(xù)我們會具體講解。

import time
import threading


def sing():
  for i in range(5):
    print("正在唱...")
    time.sleep(1)


def dance():
  for i in range(5):
    print("正在跳...")
    time.sleep(1)


def main():
  t1 = threading.Thread(target=sing)
  t2 = threading.Thread(target=dance)
  t1.start()
  t2.start()


if __name__ == "__main__":
  main()

運(yùn)行結(jié)果:

多任務(wù)的概念

什么叫“多任務(wù)”呢?簡單地說,就是操作系統(tǒng)可以同時運(yùn)行多個任務(wù)。

打個比方,你一邊在用瀏覽器上網(wǎng),一邊在聽MP3,一邊在用 Word 趕作業(yè),這就是多任務(wù)。

至少同時有3個任務(wù)正在運(yùn)行,還有很多任務(wù)悄悄地在后臺同時運(yùn)行著,只是桌面上沒有顯示而已。

現(xiàn)在,多核 CPU 已經(jīng)非常普及了,但是,即使過去的單核CPU,也可以執(zhí)行多任務(wù)。

由于 CPU 執(zhí)行代碼都是順序執(zhí)行的,那么,單核CPU是怎么執(zhí)行多任務(wù)的呢?

答案就是操作系統(tǒng)輪流讓各個任務(wù)交替執(zhí)行,任務(wù)1執(zhí)行0.01秒,切換到任務(wù)2,任務(wù)2執(zhí)行0.01秒,再切換到任務(wù)3,執(zhí)行0.01秒……這樣反復(fù)執(zhí)行下去。

表面上看,每個任務(wù)都是交替執(zhí)行的,但是,由于CPU的執(zhí)行速度實(shí)在是太快了,我們感覺就像所有任務(wù)都在同時執(zhí)行一樣。

真正的并行執(zhí)行多任務(wù)只能在多核 CPU 上實(shí)現(xiàn),但是,由于任務(wù)數(shù)量遠(yuǎn)遠(yuǎn)多于 CPU 的核心數(shù)量,所以,操作系統(tǒng)也會自動把很多任務(wù)輪流調(diào)度到每個核心上執(zhí)行。

那這里就引出了2個概念。

并發(fā)

指的是任務(wù)數(shù)多于 cpu 核數(shù),通過操作系統(tǒng)的各種任務(wù)調(diào)度算法,實(shí)現(xiàn)多個任務(wù)“一起”執(zhí)行。

多個進(jìn)程指令被快速輪換執(zhí)行,使得在宏觀上具有多個進(jìn)程同時執(zhí)行的效果。

實(shí)際上總有一些任務(wù)不在執(zhí)行,因?yàn)榍袚Q任務(wù)的速度相當(dāng)快,看上去一起執(zhí)行而已。

并行

指的是任務(wù)數(shù)小于等于 cpu 核數(shù),在同一時刻有多條指令在多個處理器上真的同時執(zhí)行。

多任務(wù)的好處

多任務(wù)可以簡單地理解為同時執(zhí)行多個不同程序,它有如下好處:

  • 可以把占據(jù)長時間的程序中的任務(wù)放到后臺去處理。
  • 用戶界面可以更加吸引人,比如用戶點(diǎn)擊了一個按鈕去觸發(fā)某些事件的處理,界面上可以彈出一個進(jìn)度條來顯示處理的進(jìn)度。
  • 程序的運(yùn)行速度可能加快。
  • 在一些等待的任務(wù)實(shí)現(xiàn)上如用戶輸入、文件讀寫和網(wǎng)絡(luò)收發(fā)數(shù)據(jù)等,可以釋放一些珍貴的資源如內(nèi)存占用等等。

以上就是詳解python程序中的多任務(wù)的詳細(xì)內(nèi)容,更多關(guān)于python 多任務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python批量連接服務(wù)器檢查容器是否正常

    python批量連接服務(wù)器檢查容器是否正常

    在生產(chǎn)中,我們可能有很多項(xiàng)目或者很多環(huán)境,可能會部署在幾百上千的服務(wù)器里面,我們該怎么定時去監(jiān)控這些服務(wù)器里面的容器服務(wù)器是否正常呢,本文就來為大家講解
    2024-01-01
  • pandas dataframe統(tǒng)計(jì)填充空值方式

    pandas dataframe統(tǒng)計(jì)填充空值方式

    這篇文章主要介紹了pandas dataframe統(tǒng)計(jì)填充空值方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Pandas直接讀取sql腳本的方法

    Pandas直接讀取sql腳本的方法

    這篇文章主要介紹了Pandas直接讀取sql腳本的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Pytorch實(shí)現(xiàn)簡單自定義網(wǎng)絡(luò)層的方法

    Pytorch實(shí)現(xiàn)簡單自定義網(wǎng)絡(luò)層的方法

    這篇文章主要給大家介紹了關(guān)于Pytorch實(shí)現(xiàn)簡單自定義網(wǎng)絡(luò)層的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-05-05
  • python插入數(shù)據(jù)到列表的方法

    python插入數(shù)據(jù)到列表的方法

    這篇文章主要介紹了python插入數(shù)據(jù)到列表的方法,涉及Python中insert方法的使用技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-04-04
  • python3?requests中文亂碼之壓縮格式問題解析

    python3?requests中文亂碼之壓縮格式問題解析

    這篇文章主要介紹了python3?requests中文亂碼問題之壓縮格式問題,我們在爬蟲時,經(jīng)常會遇見中文亂碼問題,之前都是編碼格式的問題,很少遇見由于壓縮格式造成的編碼混亂問題,特記錄下,需要的朋友可以參考下
    2022-08-08
  • python?numpy.linalg.norm函數(shù)的使用及說明

    python?numpy.linalg.norm函數(shù)的使用及說明

    這篇文章主要介紹了python?numpy.linalg.norm函數(shù)的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python魔術(shù)方法深入分析講解

    Python魔術(shù)方法深入分析講解

    所謂魔法函數(shù)(Magic Methods),是Python的?種?級語法,允許你在類中?定義函數(shù)(函數(shù)名格式?般為__xx__),并綁定到類的特殊?法中。?如在類A中?定義__str__()函數(shù),則在調(diào)?str(A())時,會?動調(diào)?__str__()函數(shù),并返回相應(yīng)的結(jié)果
    2023-02-02
  • seek引發(fā)的python文件讀寫的問題及解決

    seek引發(fā)的python文件讀寫的問題及解決

    這篇文章主要介紹了seek引發(fā)的python文件讀寫的問題及解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 深入理解NumPy簡明教程---數(shù)組2

    深入理解NumPy簡明教程---數(shù)組2

    這篇文章主要介紹了深入理解NumPy簡明教程---數(shù)組2,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-12-12

最新評論

常山县| 大名县| 双峰县| 灌云县| 商都县| 依安县| 星子县| 伊金霍洛旗| 洮南市| 清苑县| 平果县| 禄劝| 沙河市| 来凤县| 泰兴市| 乌苏市| 宜城市| 酒泉市| 多伦县| 龙南县| 冕宁县| 台南县| 昆山市| 全南县| 德兴市| 云和县| 玛多县| 长宁区| 怀来县| 项城市| 本溪市| 江城| 黄冈市| 崇义县| 阿合奇县| 镇远县| 海门市| 桐柏县| 诏安县| 永兴县| 儋州市|