찾다

 >  Q&A  >  본문

java - concurrentHashMap源码中的readValueUnderLock(e)存在的意义?

巴扎黑巴扎黑2782일 전885

모든 응답(3)나는 대답할 것이다

  • 迷茫

    迷茫2017-04-18 10:06:43

    으아악

    이전 문장에서는 테이블에 key이 있음을 보여줍니다. put 메서드를 보면 valuenull인 경우 예외가 발생합니다.

    으아악

    저의 상위 버전입니다. 귀하의 것과 다를 수 있지만 값은 비워둘 수 없습니다.
    그래서:

    으아악

    비어 있지 않으면 직접 반환할 수 있습니다. 비어 있으면 다른 스레드가 이를 운영하고 있다는 의미입니다. 그래서 추가했습니다.

    으아악

    현재 버전의 get 메서드는 HashEntry<K,V> eUNSAFE.getObjectVolatile()처럼 volatile

    로 변경하여 가져옵니다.

    회신하다
    0
  • 阿神

    阿神2017-04-18 10:06:43

    포스터는 JDK를 업그레이드할 수 있습니다. 1.8을 사용하여 검색했는데 ConcurrentHashMap에서 이 코드를 찾을 수 없습니다.

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-18 10:06:43

    개체는 초기화될 때 null입니다. 이 null은 프로그램에서 특별히 할당되지 않습니다.

    회신하다
    0
  • 취소회신하다