python之作業系統介紹,程序的建立
阿新 • • 發佈:2019-01-08
作業系統(英語:operating system,縮寫作 OS)是管理計算機硬體與軟體資源的計算機程式,同時也是計算機系統的核心與基石。作業系統需要處理如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入與輸出裝置、操作網路與管理檔案系統等基本事務。作業系統也提供一個讓使用者與系統互動的操作介面。
作業系統簡單介紹:
多道程式設計技術
空間複用
時間複用
程序之間是空間隔離的
分時系統
實時系統
通用作業系統
併發:偽並行,看著像同時執行,其實是任務之間的切換(遇到io切換的會提高程式碼效率) ,任務切換+儲存狀態(儲存現場
並行:真正的同時在執行,應用的是多核技術(多個cpu)
程序三狀態:就緒(等待作業系統排程去cpu裡面執行) 執行 阻塞
提交任務的方式:同步非同步 任務的執行狀態:阻塞非阻塞
非同步:任務的提交方式,多個任務提交出去,同時執行
分類:
同步阻塞
非同步阻塞:
非同步非阻塞:
同步非阻塞:
程序的2種建立方式:
第一種:
import time from multiprocessing importProcess 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('大力') p1.start()
傳參方式:
from multiprocessing import Process # 演示兩種傳參方式 def f1(n): print(n) if __name__ == '__main__': # p1 = Process(target=f1,args=('大力',)) #建立程序物件 p1 = Process(target=f1,kwargs={'n':'大力'}) # 建立程序物件 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('我是主程序!!!')