>  Q&A  >  본문

java - ConcurrentHashMap과 같은 고성능 클래스의 구체적인 비즈니스 사용 시나리오는 무엇입니까?

질문에 따르면 ConcurrentHashMap과 같은 고성능 클래스의 구체적인 비즈니스 사용 시나리오는 무엇입니까?

HashMap은 보통 우리가 코드를 작성할 때 가장 많이 사용하고 익숙해져 있습니다

하지만 자바에는 다른 고성능 맵도 있는데 평소에는 잘 사용하지 않는 것 같아요

바이두에서 검색해보니 HashMap과 ConcurrentHashMap의 차이만 보이더라구요

하지만 어떤 특정 비즈니스 사용 시나리오에서 이러한 클래스를 사용할지는 모르겠습니다

그래서 좀 헷갈리는데 선배님들께서 지도 좀 해주셨으면 좋겠습니다. 감사합니다

给我你的怀抱给我你的怀抱2670일 전1164

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

  • 某草草

    某草草2017-06-28 09:25:10

    ConcurrentHashMap은 동시성을 방지하기 위한 java.util.concurrent 패키지 아래의 도구 클래스입니다. 비즈니스 용도의 경우 자체 동시성 클래스에서 ThreadLocal을 구현할 수도 있습니다. . .

    주로 멀티스레딩에서 사용됩니다. 이전 버전의 Java에서는 동기화된 동기화 블록을 사용했는데 이는 잠금 및 해제와 같은 문제를 해결하기가 쉽지 않았습니다. 이제 모든 것이 공식적으로 Java로 작성되었으므로 멀티스레딩을 살펴보세요. . .

    예를 들어 비즈니스 시나리오에서 회사의 인사 정보는 다중 스레드 데이터베이스에 저장됩니다. java.util.List를 사용하면 각 스레드의 데이터가 일치하지 않습니다. 이 경우 동시성 도구 클래스를 사용해야 합니다. . 주목해야 할 가장 중요한 점은 데이터를 읽을 때 중요하지 않다는 것입니다. . .

    회신하다
    0
  • 欧阳克

    欧阳克2017-06-28 09:25:10

    ConcurrentHashMap은 다중 스레드에서 액세스할 수 있도록 특별히 설계되었습니다. 예:

    으아악

    동시에 로그인 및 로그아웃하는 사용자가 많으면 onUserSignIn()onUserSignOut()동시에 호출되는 스레드가 많아집니다.

    회신하다
    0
  • 黄舟

    黄舟2017-06-28 09:25:10

    초대해주셔서 감사합니다.

    먼저 알아야 할 사항:

    • 여러 스레드에서 보호되지 않은 개체에 대한 작업을 수행하면 모든 사람에게 일관되지 않은 상태가 발생하게 됩니다.

    • 내부 요소가 특정 요구 사항을 충족하거나 특정 숫자보다 크거나 같은 특정 조건 하에서 일반 hashMap을 추가하고 제거하기 위해 여러 스레드를 열 수 있습니다.

    • ConcurrentHashMap은 jdk 동시성 패키지에서 제공하는 동시성 맵으로, 여러 스레드가 객체를 실행할 때 객체 복사 불일치를 효과적으로 방지할 수 있습니다.

    바이두에서 해당 장면을 검색하실 수 있습니다.

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-06-28 09:25:10

    차이점은 말할 필요도 없겠죠.

    스레드 안전성을 보장하기 위해 일반적으로 ConcurrentHashMap을 사용하면 더 이상 번거로운 동기화 방법을 사용할 필요가 없습니다. 또한 ConcurrentHashMap은 일반적으로 멀티 스레드 상황에서 사용됩니다. 모든 멀티 스레드가 이 동시성 도구 클래스를 사용할 수 있는 것은 아닙니다.

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