1. 程式人生 > >python之操作系統介紹,進程的創建

python之操作系統介紹,進程的創建

保存 tar lba 演示 都是 too 間隔 info 代碼

操作系統(英語:operating system,縮寫作 OS)是管理計算機硬件與軟件資源的計算機程序,同時也是計算機系統的內核與基石。操作系統需要處理如管理與配置內存、決定系統資源供需的優先次序、控制輸入與輸出設備、操作網絡與管理文件系統等基本事務。操作系統也提供一個讓用戶與系統交互的操作界面。

操作系統簡單介紹:

  多道程序設計技術

    空間復用

    時間復用

    進程之間是空間隔離的

  分時系統

  實時系統

  通用操作系統

並發:偽並行,看著像同時運行,其實是任務之間的切換(遇到io切換的會提高代碼效率) ,任務切換+保存狀態(保存現場)

並行:真正的同時在運行,應用的是多核技術(多個cpu)

進程三狀態:就緒(等待操作系統調度去cpu裏面執行) 執行 阻塞

技術分享圖片

提交任務的方式:同步異步 任務的執行狀態:阻塞非阻塞

  異步:任務的提交方式,多個任務提交出去,同時執行

分類:

  同步阻塞

  異步阻塞:

  異步非阻塞:

  同步非阻塞:

進程的2種創建方式:

第一種:

技術分享圖片
import time
from multiprocessing import Process

def f1():
    time.sleep(3)
    print(‘我同桌是豬‘)
    print(time.strftime(‘%Y-%m-%d %H:%M:%S‘, time.localtime()))
def f2():
    time.sleep(3)
    print(‘還偷偷睡覺‘)
    print(time.strftime(‘%Y-%m-%d %H:%M:%S‘,time.localtime()))

if __name__ == ‘__main__‘:
    p1 = Process(target=f1,)
    p2 = Process(target=f2, )
    p1.start()
    p2.start()
技術分享圖片

第二種方式: 創建一個類,繼承Process

技術分享圖片
from multiprocessing import Process
class MyProcess(Process):
    def __init__(self,n):
        super().__init__()  #別忘了執行父類的init
        self.n = n
    def run(self):
        print(‘%s快要睡著了‘%self.n)

if __name__ == ‘__main__‘:
    p1 = MyProcess(‘Jerry‘)
    p1.start()
技術分享圖片

傳參方式:

技術分享圖片
from multiprocessing import Process
# 演示兩種傳參方式
def f1(n):
    print(n)

if __name__ == ‘__main__‘:
    # p1 = Process(target=f1,args=(‘Jerry‘,)) #創建進程對象
    p1 = Process(target=f1,kwargs={‘n‘:‘Jerry‘}) # 創建進程對象    kwargs={函數中的形參作為key:值}
    p1.start()  #給操作系統發送了一個創建進程的信號,後續進程的創建都是操作系統的事兒了
技術分享圖片

for 循環創建進程:

技術分享圖片
import time
from multiprocessing import Process

def f1(i):
    time.sleep(3)
    print(i)
if __name__ == ‘__main__‘:
    for i in range(20):
        p1 = Process(target=f1,args=(i,))
        p1.start()
技術分享圖片

技術分享圖片

join()方法:主進程等待子進程運行完才繼續執行

技術分享圖片
import time
from multiprocessing import Process

def f1():
    time.sleep(2)
    print(‘我是f1‘)

def f2():
    time.sleep(2)
    print(‘我是f2‘)

if __name__ == ‘__main__‘:
    p1 = Process(target=f1,)
    p1.start()
    p1.join()  # 主進程等待子進程運行完才繼續執行
    
    print(‘p2來了‘)
    p2 = Process(target=f2,)
    p2.start()
    p2.join()
    
    print(‘我要等了...等我的子進程...‘)
    print(‘我是主進程!!!‘)
技術分享圖片

技術分享圖片

python之操作系統介紹,進程的創建