成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:咱們今天就淺談JVM三色標記法,我:這也問?

開發(fā) 前端
三色標記算法是根可達算法的一種實現方案,其目的是為了找出所有可達對象。三色標記算法會產生多標和漏標問題,其中漏標問題最嚴重。漏標問題會導致本該存活的對象被回收,從而導致嚴重的程序問題。

1.前言

三色標記算法,用于垃圾回收器升級,將STW變?yōu)椴l(fā)標記。STW就是在標記垃圾的時候,必須暫停程序,而使用并發(fā)標記,就是程序一邊運行,一邊標記垃圾。

2. 三色標記算法

2.1.什么是三色:

首先我們需要知道三色標記法就是根據可達性分析,從GC Roots開始進行遍歷訪問,在遍歷對象過程中,按“是否檢查過”這個條件將對象標記成三種顏色:

  • 黑色: 代表對象已經檢查過,且成員對象也被檢查過了。如果有其他對象引用指向了黑色對象,無須重新檢查一遍。黑色對象不可能直接(不經過灰色對象)指向某個白色對象。
  • 灰色代表對象已經檢查過,但成員還沒全部檢查完成
  • 白色代表對象沒有被檢查。 在可達性分析剛剛開始的階段, 所有的對象都是白色的, 若在分析結束的階段, 仍然是白色的對象, 即代表不可達。

2.2.三色標記過程:

假設現在有白、灰、黑三個集合(表示當前對象的顏色),其遍歷訪問過程為:

  1. 初始時,所有對象都在【白色集合】中;
  2. 將 GC Roots直接引用到的對象挪到【灰色集合】中;
  3. 從灰色集合中獲取對象:

3.1. 將本對象引用到的其他對象全部挪到【灰色集合】中;

3.2. 將本對象挪到【黑色集合】里面。

  1. 重復步驟3,直至【灰色集合】為空時結束。
  2. 結束后,仍在【白色集合】的對象即為GC Roots不可達,可以進行回收。

需要注意,傳統(tǒng)標記方式發(fā)生Stop The World時,對象間的引用是不會發(fā)生變化的,可以輕松完成標記。

而并發(fā)標記在標記期間應用線程還在繼續(xù)跑,對象間的引用可能發(fā)生變化,就會出現錯標和漏標的情況就有可能發(fā)生。

3.存在的問題

3.1.浮動垃圾:標記過不是垃圾的,變成了垃圾

并發(fā)標記的過程中,若一個已經被標記成黑色或者灰色的對象,突然變成了垃圾,此時,此對象不是白色的不會被清除,重新標記也不能從GC Root中去找到,所以成為了浮動垃圾,這種情況對系統(tǒng)的影響不大,留給下一次GC進行處理即可。

3.2.對象漏標問題:需要的對象被回收

并發(fā)標記的過程中,一個業(yè)務線程將一個未被掃描過的白色對象斷開引用成為垃圾(刪除引用),同時黑色對象引用了該對象(增加引用)(這兩部可以不分先后順序);

因為黑色對象的含義為其屬性都已經被標記過了,重新標記也不會從黑色對象中去找,導致該對象被程序所需要,卻又要被GC回收,此問題會導致系統(tǒng)出現問題。

4.總結

三色標記算法是根可達算法的一種實現方案,其目的是為了找出所有可達對象。三色標記算法會產生多標和漏標問題,其中漏標問題最嚴重。漏標問題會導致本該存活的對象被回收,從而導致嚴重的程序問題。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2023-01-08 13:46:49

2021-08-16 10:35:52

JVM標記法屏障

2021-08-06 11:46:46

Go三色標記法

2020-07-09 15:45:22

GoGC內存

2025-01-06 08:22:41

2022-11-04 08:47:52

底層算法數據

2022-08-15 08:01:00

三色標記JVM算法

2023-03-15 09:49:00

CMSG1三色標

2021-03-24 10:25:24

優(yōu)化VUE性能

2021-05-11 21:56:11

算法清除JVM

2021-11-08 09:18:01

CAS面試場景

2021-12-25 22:31:10

MarkWord面試synchronize

2024-03-07 17:21:12

HotSpotJVMHot Code

2021-12-02 08:19:06

MVCC面試數據庫

2021-01-06 05:36:25

拉鏈表數倉數據

2010-08-23 15:06:52

發(fā)問

2021-12-16 18:38:13

面試Synchronize

2018-04-23 11:00:44

PythonRedisNoSQL

2022-01-20 10:34:49

JVM垃圾回收算法

2022-01-05 09:55:26

asynawait前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人午夜精品 | 精品国产一区二区三区在线观看 | 欧美一区二区三区在线播放 | a级毛片国产 | 国产精品视频久久久久久 | 国产欧美视频一区二区三区 | 国产在线一区二区 | 欧美成人h版在线观看 | 亚洲一区二区三区免费视频 | 视频三区 | 久久国产精品一区二区三区 | 国产欧美在线 | 亚洲成人免费视频在线 | 亚洲精品久久久久久久久久久 | 亚洲最大的黄色网址 | 国产欧美日韩一区 | 特级毛片www | 欧美国产在线一区 | 精品成人在线观看 | 久久99深爱久久99精品 | 欧美激情在线观看一区二区三区 | 精品少妇一区二区三区日产乱码 | 免费国产网站 | 亚洲综合视频一区 | 欧美黑人体内she精在线观看 | 欧美国产日韩在线观看 | 91在线精品视频 | 亚洲综合国产 | 亚洲成人观看 | 欧美一区不卡 | 日韩一区三区 | 欧美影院 | 亚洲视频免费在线播放 | 国产精品久久久久久中文字 | 91精品国产综合久久福利软件 | 欧美日韩在线一区二区三区 | 日韩成人在线播放 | 国产一区不卡 | 中文字幕综合 | 精品麻豆剧传媒av国产九九九 | 中文av网站 |