僅用學習參考多工介紹
現實生活中
有很多的場景中的事情是同時進行的,比如開車的時候 手和腳共同來駕駛汽車,再比如唱歌跳舞也是同時進行的;
試想,如果把唱歌和跳舞這2件事情分開依次完成的話,估計就沒有那麼好的效果了(想一下場景:先唱歌,然後在跳舞,o(∩_∩)o哈哈~)
程式中如下程式,來模擬「唱歌跳舞」這件事情
#coding=utf-8
from time import sleep
def sing():
for i in range(3):
print("正在唱歌...%d"%i)
sleep(1)
def dance():
for i in range(3):
print("正在跳舞...%d"%i)
sleep(1)
if __name__ == '__main__':
sing() #唱歌
dance() #跳舞
執行結果如下:
[root@server01 many_task]# python test.py
正在唱歌...0
正在唱歌...1
正在唱歌...2
正在跳舞...0
正在跳舞...1
正在跳舞...2
[root@server01 many_task]#
!!!注意很顯然剛剛的程式並沒有完成唱歌和跳舞同時進行的要求
如果想要實現「唱歌跳舞」同時進行,那麼就需要乙個新的方法,叫做:多工
那麼如何實現多工呢?這裡需要引入乙個執行緒的方法。
下面使用**演示一下:
[root@server01 many_task]# vim test.py
#coding=utf-8
import threading # 引入執行緒
from time import sleep
def sing():
for i in range(3):
print("正在唱歌...%d"%i)
sleep(1)
def dance():
for i in range(3):
print("正在跳舞...%d"%i)
sleep(1)
if __name__ == '__main__':
#sing() #唱歌
#dance() #跳舞
t1 = threading.thread(target=sing)
t2 = threading.thread(target=dance)
t1.start()
t2.start()
執行效果如下:
[root@server01 many_task]# python test.py
正在唱歌...0
正在跳舞...0
正在唱歌...1
正在跳舞...1
正在唱歌...2
正在跳舞...2
[root@server01 many_task]#
可以看出,基本上唱歌、跳舞是同時進行的了。
什麼叫「多工」呢?簡單地說,就是作業系統可以同時執行多個任務。打個比方,你一邊在用瀏覽器上網,一邊在聽***,一邊在用word趕作業,這就是多工,至少同時有3個任務正在執行。還有很多任務悄悄地在後台同時執行著,只是桌面上沒有顯示而已。
現在,多核cpu已經非常普及了,但是,即使過去的單核cpu,也可以執行多工。由於cpu執行**都是順序執行的,那麼,單核cpu是怎麼執行多工的呢?
答案就是作業系統輪流讓各個任務交替執行,任務1執行0.01秒,切換到任務2,任務2執行0.01秒,再切換到任務3,執行0.01秒……這樣反覆執行下去。表面上看,每個任務都是交替執行的,但是,由於cpu的執行速度實在是太快了,我們感覺就像所有任務都在同時執行一樣。
真正的並行執行多工只能在多核cpu上實現,但是,由於任務數量遠遠多於cpu的核心數量,所以,作業系統也會自動把很多任務輪流排程到每個核心上執行。
注意:python 多工介紹
多工介紹 在現實生活中,有很多的場景中的事情是同時進行的,比如跳舞和唱歌是同時進行的。在程式中,可以使用 來模擬唱歌和跳舞的功能 from time import sleep def sing for i in range 3 print 正在唱歌.d i sleep 1 def dance for...
8 6多工介紹
1.現實中的多工 看著動畫吃飯 2.計算機中的多工 計算機中的多工是指,作業系統同時完成多項任務的處理。此處同時是指同乙個時間段內,而非某個瞬時的時間點。多工處理是指,使用者在同一時間段內執行多個應用程式,每個應用程式就可以稱之為乙個任務。現在,多核cpu已經非常普及了,但是,即使過去的單核cpu,...
多工的介紹
利用現學知識能夠讓兩個函式或者方法同時執行嗎?不能,因為之前所寫的程式都是單任務的,也就是說乙個函式或者方法執行完成另外乙個函式或者方法才能執行,要想實現這種操作就需要使用多工。多工的最大好處是充分利用cpu資源,提高程式的執行效率。多工是指在同一時間內執行多個任務,例如 現在電腦安裝的作業系統都是...