Python程序和執行緒(包含兩者區別)

2022-07-26 16:21:15 字數 819 閱讀 6611

幾乎所有的作業系統都支援同時執行多個任務,每個任務通常是乙個程式,每乙個執行中的程式就是乙個程序,即程序是應用程式的執行例項。現代的作業系統幾乎都支援多程序併發執行。

注意,併發和並行是兩個概念,並行指在同一時刻有多條指令在多個處理器上同時執行;併發是指在同一時刻只能有一條指令執行,但多個程序指令被快速輪換執行,使得在巨集觀上具有多個程序同時執行的效果。

當乙個程序裡只有乙個執行緒時,叫作單執行緒。超過乙個執行緒就叫作多執行緒。

每個執行緒必須有自己的父程序,且它可以擁有自己的堆疊、程式計數器和區域性變數,但不擁有系統資源,因為它和父程序的其他執行緒共享該程序所擁有的全部資源。執行緒可以完成一定的任務,可以與其他執行緒共享父程序中的共享變數及部分環境,相互之間協同完成程序所要完成的任務。

多個執行緒共享父程序裡的全部資源,會使得程式設計更加方便,需要注意的是,要確保執行緒不會妨礙同一程序中的其他執行緒。

執行緒是獨立執行的,它並不知道程序中是否還有其他執行緒存在。執行緒的執行是搶占式的,也就是說,當前執行的執行緒在任何時候都可能被掛起,以便另外乙個執行緒可以執行。

乙個執行緒可以建立和撤銷另乙個執行緒,同乙個程序中的多個執行緒之間可以併發執行。

從邏輯的角度來看,多執行緒存在於乙個應用程式中,讓乙個應用程式可以有多個執行部分同時執行,但作業系統無須將多個執行緒看作多個獨立的應用,對多執行緒實現排程和管理以及資源分配,執行緒的排程和管理由程序本身負責完成。

簡而言之,程序和執行緒的關係是這樣的:作業系統可以同時執行多個任務,每乙個任務就是乙個程序,程序可以同時執行多個任務,每乙個任務就是乙個執行緒。

python print和pprint兩者的區別

print和pprint兩者的區別 1.print 和pprint 都是python的列印模組,功能基本一樣,唯一的區別就是pprint 模組列印出來的資料結構更加完整,每行為乙個資料結構,更加方便閱讀列印輸出結果。特別是對於特別長的資料列印,print 輸出結果都在一行,不方便檢視,而pprint...

Python print和pprint兩者的區別

print 和pprint 都是python的列印模組,功能基本一樣,唯一的區別就是pprint 模組列印出來的資料結構更加完整,每行為乙個資料結構,更加方便閱讀列印輸出結果。特別是對於特別長的資料列印,print 輸出結果都在一行,不方便檢視,而pprint 採用分行列印輸出,所以對於資料結構比較...

mt rand 和rand 兩者的區別

在隨機讀取中使用了mt rand 而不適用rand 他們兩者的區別 mt rand 是更好地隨機數生成器,因為它跟rand 相比播下了乙個更好地隨機數種子 而且效能上比rand 快4倍,mt getrandmax 所表示的數值範圍也更大 getrandmax 32767 2 15 1 mt getr...