談談Jvm的安全點與安全區域

2021-10-22 01:34:49 字數 593 閱讀 7579

安全點與安全區域

安全點就是指**中一些特定的位置,當執行緒執行到這些位置時它的狀態是確定的,這樣jvm就可以安全的進行一些操作,比

如gc等,所以gc不是想什麼時候做就立即觸發的,是需要等待所有執行緒執行到安全點後才能觸發。

這些特定的安全點位置主要有以下幾種:

1. 方法返回之前

2. 呼叫某個方法之後

3. 丟擲異常的位置

4. 迴圈的末尾

安全區域又是什麼?

safe point 是對正在執行的執行緒設定的。

如果乙個執行緒處於 sleep 或中斷狀態,它就不能響應 jvm 的中斷請求,再執行到 safe point 上。

因此 jvm 引入了 safe region。

safe region 是指在一段**片段中,引用關係不會發生變化。在這個區域內的任意地方開始 gc 都是安全的。

執行緒在進入 safe region 的時候先標記自己已進入了 safe region,等到被喚醒時準備離開 safe region 時,先檢查能

否離開,如果 gc 完成了,那麼執行緒可以離開,否則它必須等待直到收到安全離開的訊號為止。

譯文 GC 安全點 和安全區域

根引用 root references 乙個例項死了,意味著它變得無用。只用程式設計師知道乙個例項是否已經無用。為了讓程式知道乙個例項是否已經無用,我們可以使用編譯器分析,引用計數,或者 可達性分析。可達性分析假設只要乙個例項是可達的,它就是活著的。如果乙個例項的引用直接包含在當前函式棧的乙個槽 s...

iOS iphonex底部安全區域

問題出在哪,不是你的iphone x是假的,是真的獲取不到。只有在vc的 void viewdidlayoutsubviews這個方法裡,你獲取到的才是,所以在這方法裡面才能獲取到self.view.safeareainsets.bottom的值。為什麼會出現這種情況,下面說明vc中的兩個方法 1....

安全區域邊界 (五)安全審計

安全區域邊界 控制點 5.安全審計 安全審計是指針對等級保護物件中與安全活動相關的資訊進行識別 記錄 儲存和分析的整個過程。安全審計功能可確保使用者對其行為負責,證實安全政策得以實施,並可用作調查工具。通過檢查審計記錄結果可以判斷發生了哪些安全相關活動以及哪個使用者要對這些活動負責。另外安全審計可協...