進程1


'''
  運行一個程序:代碼是自上而下加載按照順序執行。
  操作系統:
  併發:
  並行:

你吃飯吃到一半,電話來了,你一直到吃完了以後纔去接,這就說明你不支持併發也不支持並行。
--->順序
你吃飯吃到一半,電話來了,你停了下來接了電話,接完後繼續吃飯,這說明你支持併發。
 ---> 併發
你吃飯吃到一半,電話來了,你一邊打電話一邊吃飯,這說明你支持並行。 ---->並行
併發的關鍵是你有處理多個任務的能力,不一定要同時。
並行的關鍵是你有同時處理多個任務的能力

單核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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章