'''
運行一個程序:代碼是自上而下加載按照順序執行。
操作系統:
併發:
並行:
你吃飯吃到一半,電話來了,你一直到吃完了以後纔去接,這就說明你不支持併發也不支持並行。
--->順序
你吃飯吃到一半,電話來了,你停了下來接了電話,接完後繼續吃飯,這說明你支持併發。
---> 併發
你吃飯吃到一半,電話來了,你一邊打電話一邊吃飯,這說明你支持並行。 ---->並行
併發的關鍵是你有處理多個任務的能力,不一定要同時。
並行的關鍵是你有同時處理多個任務的能力
單核CPU:
瀏覽網頁
聽歌
步驟:
1. 創建進程對象 p = Process(target=函數名)
2. 啓動進程 p.start()
'''
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() # 跳舞
# 引入進程
from multiprocessing import Process
if __name__ == '__main__':
# 1. 創建process對象,指定該進程完成任務
p1 = Process(target=sing) # process進程要完成任務 通過target這個參數指定
p2 = Process(target=dance)
# 2. 啓動進程
p1.start()
p2.start()
'''
主進程 子進程
進程號 主進程號
'''
from multiprocessing import Process
from time import sleep
import os
def weichat(name):
for i in range(5): # parent process id
print('正在跟{}聊天,這是第{}句'.format(name, i + 1), os.getpid(), os.getppid())
sleep(1)
def study(course, time):
for i in range(time):
print('認真學習{},這個第{}小時'.format(course, i + 1), os.getpid(), os.getppid())
sleep(1)
if __name__ == '__main__':
# weichat('小二郎')
# study('python', 3)
p1 = Process(target=weichat, args=('小二郎',))
p2 = Process(target=study, kwargs={'course': 'python', 'time': 4})
p1.start()
p2.start()
for i in range(5):
print('---------->', i, os.getpid())
sleep(1)