跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 所以 ConcurrentHashMap 扩容的时候,线程 A 先 put(a,b),线程 B 后 get(a),线程 B 获得的结果会是 null?
未分類
11 10 月 2020

所以 ConcurrentHashMap 扩容的时候,线程 A 先 put(a,b),线程 B 后 get(a),线程 B 获得的结果会是 null?

所以 ConcurrentHashMap 扩容的时候,线程 A 先 put(a,b),线程 B 后 get(a),线程 B 获得的结果会是 null?

資深大佬 : Newyorkcity 2

网上的资料上说扩容时 get 操作走旧表并不阻塞,但 put 操作阻塞,故有此问。

多谢

大佬有話說 (6)

  • 資深大佬 : user8341

    有没有代码

  • 資深大佬 : by73

    JavaDoc: Retrievals reflect the results of the most recently completed update operations holding upon their onset.

    就是说如果 get() 的同时也在 put(),那么 get() 出来的值就是旧值(或者 Null )。

  • 資深大佬 : fzz

    弱一致性。

  • 資深大佬 : zdt3476

    既然是两个线程你怎么能肯定 A 比 B 先执行?

  • 資深大佬 : zlllllei

    @zdt3476 谁先执行谁就是 A,所以 A 一定先 B 执行。

  • 資深大佬 : zlllllei

    @zdt3476 欠考虑了,一开始没理解你的意思。当我没说。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具