亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:4日期:2022-07-11 10:17:06

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

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

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

import timedef 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é)果:

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

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

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

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

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

import timeimport threadingdef 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é)果:

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

多任務(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í)行,因為切換任務(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)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 欧美成人另类人妖 | 国产精品1区2区 | 日韩中文字幕在线播放 | 成人看片毛片免费播放器 | 久久er热视频在这里精品 | 日韩精品久久久久影院 | 99视频在线观看高清 | 99在线观看视频免费精品9 | 亚洲一区二区三区亚瑟 | 色综合网站国产麻豆 | 中国护士一级毛片免费版本 | 毛片大全网站 | 夜夜操夜夜爱 | 三集黄色片 | 欧美精品亚洲精品日韩专区 | 五月婷婷久久综合 | a级国产乱理片在线观看 | 国产在线观看一区精品 | 精品无人区一区二区三区a 精品无码一区在线观看 | 牛牛a级毛片在线播放 | 老头毛片 | 成年人免费影院 | 成人午夜视频在线播放 | 国产一区二区三区丶四区 | 在线看国产 | 欧美中文字幕一二三四区 | 国产亚洲高清在线精品不卡 | 成人自拍视频在线 | 丝袜足交在线 | 国产欧美中文字幕 | 日韩成人中文字幕 | 国产欧美日韩专区 | 免费观看h片| 99综合 | 免费人成在线视频播放2022 | 小明明看看视频永久免费网 | 成人黄色在线网站 | 欧美一级毛片欧美一级 | 黄色免费小网站 | 久久久久亚洲精品美女 | 男女免费高清在线爱做视频 |