1. 程式人生 > 程式設計 >JDK1.8中ConcurrentHashMap中computeIfAbsent死迴圈bug問題

JDK1.8中ConcurrentHashMap中computeIfAbsent死迴圈bug問題

死迴圈問題的提出:https://bugs.openjdk.java.net/browse/JDK-8062841

map.computeIfAbsent("AaAa",key->map.computeIfAbsent("BBBB",key2->42));

JDK1.8中ConcurrentHashMap中computeIfAbsent死迴圈bug問題

computeIfAbsent在1.8中才有的方法

JDK1.8中ConcurrentHashMap中computeIfAbsent死迴圈bug問題

computeIfAbsent意思是:key不存在時候,呼叫mappingFunction函式結果作為value值

debug

JDK1.8中ConcurrentHashMap中computeIfAbsent死迴圈bug問題JDK1.8中ConcurrentHashMap中computeIfAbsent死迴圈bug問題

兩個key的hash值一樣,跑到同一個槽裡面,然後一直死迴圈for

JDK1.8中ConcurrentHashMap中computeIfAbsent死迴圈bug問題

總結

到此這篇關於JDK1.8中ConcurrentHashMap中computeIfAbsent死迴圈bug的文章就介紹到這了,更多相關JDK1.8 ConcurrentHashMap computeIfAbsent死迴圈內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!