執行緒和程序

2021-09-25 23:23:39 字數 1007 閱讀 8218

程序是資源分配的最小單位,執行緒是cpu排程的最小單位

鎖池entrylist:假設執行緒a已經擁有了某個物件(不是類)的鎖,而其它執行緒b、c想要呼叫這個物件的某個 synchronized方法(或者塊),由於b、c執行緒在進入物件的 synchronized方法(或者塊)之前必須先獲得該物件鎖的擁有權,而恰巧該物件的鎖目前正被執行緒a所占用,此時b、c執行緒就會被阻塞,進入乙個地方去等待鎖的釋放,這個地方便是該物件的鎖池。

等待池waitset:假設執行緒a呼叫了某個物件的wait()方法,執行緒a就會釋放該物件的鎖,同時執行緒a就進入到了該物件的等待池中,進入到等待池中的執行緒不會去競爭該物件的鎖。

notify會讓所有處於等待池的執行緒全部進入鎖池去竟爭獲取鎖的機會

概念:當呼叫 thread yield()函式時,會給執行緒排程器乙個當前執行緒願意讓出cpu使用的暗示,但是執行緒排程器可能會忽略這個暗示。

呼叫 interrupt(),通知執行緒應該中斷了

如果執行緒處於被阻塞狀態,那麼執行緒將立即退岀被阻塞狀態,並丟擲乙個 interrupted exception異常。

如果執行緒處於正常活動狀態,那麼會將該執行緒的中斷標誌設定為true。被設定中斷標誌的執行緒將繼續正常執行,不受影響。

執行緒和程序

標準的定義是 程序是執行緒的容器,乙個程序可於乙個或者多個執行緒,它是系統分配資源的基本單位 同乙個程序下,執行緒共享位址空降 已經開啟的檔案 訊號處理函式 報警訊號和其他,執行緒自己只保留程式計數器和棧。但是很遺憾的,這個只是教科書上的定義,實際情況是每個作業系統實現的作業系統特性不同,實現的方法...

程序和執行緒

乙個程序就是當前正在執行的乙個程式,包括程式的暫存器 程式計數器和變數的當前值。不同的程序擁有不同的位址空間。而執行緒可以理解為是程序中的控制流。同乙個程序內也就是說在同乙個位址空間內可以有多個控制流。也就是可以有多個線 程,他們共享位址空間。我們通常將程序視為是資源的集合,程序中有程式的正文 資料...

執行緒和程序

對於求職者,在面試的時候大多都會被問到 你對多執行緒了解麼?給我講講執行緒和程序的區別吧。在unix中,乙個程序可以理解為執行緒 位址空間 檔案描述符 資料,道破現實,其實就相當於老闆和員工,老闆就是程序,員工就是執行緒。老闆需要僱傭若干員工 執行緒 還要有辦公樓 位址空間 還要有若干的辦公裝置 檔...