程序:是資源分配的基本單位。所有與該程序有關的資源,都被記錄在程序控制塊pcb中。
程序:處理機的排程單位,擁有完整的虛擬位址空間。當程序發生排程時,不同的程序擁有不同的虛擬位址空間,而同一程序內的不同執行緒共享同一位址空間。
聯絡:1、執行緒與資源分配無關,屬於某乙個程序,並與其他執行緒共享程序資源。
2、執行緒只由相關堆疊(系統棧或使用者棧)暫存器和執行緒控制表tcb組成。
3、暫存器可被用來儲存執行緒內的區域性變數,但不能儲存其他執行緒的相關變數。
4、程序在多執行緒中,程序不是乙個可執行的實體。
兩者比較:
1、排程和切換:執行緒上下文切換比程序上下文切換要快得多。
2、通訊:程序間通訊ipc,執行緒間可以直接讀寫程序資料段(如全域性變數)來進行通訊——需要程序同步和互斥手段的輔助,以保證資料的一致性。
3、位址空間和其它資源(如開啟檔案):程序間相互獨立,同一程序的各執行緒間共享。某程序內的執行緒在其它程序不可見。
執行緒程序比較
主程序結束後,子程序會結束不再執行,可以呼叫join 穿件執行緒和程序差不多 執行緒需要開啟,可以阻塞 import threading,time def t fun 子執行緒入口函式 print time.sleep 1 def time check fun p 統計時間的裝飾函式 def fun...
程序 執行緒與協程的比較
執行緒的優點是減小了程式併發執行時的開銷,提高了作業系統的併發效能,缺點是執行緒沒有自己的系統資源,只擁有在執行時必不可少的資源,但同一程序的各執行緒可以共享程序所擁有的系統資源,如果把程序比作乙個車間,那麼執行緒就好比是車間裡面的工人。不過對於某些獨占性資源存在鎖機制,處理不當可能會產生 死鎖 第...
程序和執行緒的比較
排程 執行緒是cpu排程和分派的基本單位。擁有資源 程序是系統中程式執行和資源分配的基本單位。執行緒自己一般不擁有資源 除了必不可少的程式計數器,一組暫存器和棧 但它可以去訪問qi其所屬組的資源,如程序 段,資料段以及系統資源 已開啟的檔案,i o裝置等 系統開銷 同一程序中的多個執行緒可共享同一位...