1. 什麼是進程
我們想通過網易雲聽歌,具體的過程應該是先找到酷我應用程序,然後雙擊就會播放音樂。
當我們雙擊的時候,操作系統將程序裝載到內存中,操作系統爲它分配資源,然後才能運
行。運行起來的應用程序就稱之爲進程。
也就是說當程序不運行的時候我們稱之爲程序,當程序運行起來他就是一個進程。通俗的理解就是不運行的時候是程序,運行起來就是進程。
程序和進程的對應關係是:程序只有一個,但是進程可以有多個。
例:
import os
import time
def sing():
for i in range(3):
time.sleep(2)
print("唱第{}首歌".format(i+1))
def dance():
"""跳舞函數"""
for i in range(3):
time.sleep(3)
print("跳第{}段舞".format(i+1))
def main():
sing()
dance()
if __name__ == '__main__':
main()
print(os.getpid())
#先唱完歌,再跳舞,是一個串行操作
#想邊唱歌邊跳舞,並行操作,操作效率高
#單核CPU在任何時候只能執行一個任務
多進程:
from multiprocessing import Process
import time
def sing():
for i in range(3):
# time.sleep(3)
print("唱%d首歌" % (i+1))
def dance():
for i in range(3):
# time.sleep(3)
print("跳%d段舞" % (i+1))
if __name__ == '__main__':
#2.創建進程
p1=Process(target=sing)#創建進程怕,執行sing函數
p2=Process(target=dance)
start= time.time()
#3.啓動進程
p1.start()
p2.start()
end=time.time()
#dance()
date = end-start
print(date)
唱1首歌
跳1段舞
唱2首歌
唱3首歌
跳2段舞
跳3段舞
連唱帶跳~~~