Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

497
Visualizações
¿Cuál usar: HashMap y ConcurrentHashMap con valores futuros JAVA?

Básicamente, tendemos a usar ConcuttentHashMap en un entorno de subprocesos múltiples. Mi código actual es así:

 ExecutorService executor = Executors.newFixedThreadPool(3); Map<String, Future<String>> myMap = new HashMap<String, Future<String>>(); myMap.put("SomeValue", executor.submit(() -> return callAndReturnStringMethod("SomeValue")); myMap.put("AnotheValue", executor.submit(() -> return callAndReturnStringMethod("AnotheValue")); ... ....

Solo quiero almacenar el objeto futuro para las llamadas de subprocesos asíncronos correspondientes a la cadena pasada como clave en el mapa.

Mi primera pregunta: ¿Será bueno usar HashMap y no ConcurrentHashMap al tratar con el objeto Future? ¿Debo usar ConcurrentHashMap en este escenario? Segunda pregunta: ¿Cuáles podrían ser las compensaciones si uso el último?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

estas diciendo eso

Los valores del mapa no se modifican.

por lo que no debería haber ninguna razón para elegir ConcurrentHashMap. ConcurrentHashMap está destinado a proporcionar seguridad de subprocesos y atomicidad de operaciones entre subprocesos, que tampoco necesita.

Las compensaciones son que está pagando el precio de las operaciones atómicas/seguras para subprocesos cuando no las necesita. En cuanto a cuánto es realmente, depende de su aplicación.

Temas relacionados

  • Rendimiento ConcurrentHashmap vs HashMap
  • ¿Hay algún inconveniente con ConcurrentHashMap?
over 4 years ago · Santiago Trujillo Relatório

0

Ninguno.

Use un EnumMap y transforme su SomeValue/AnotherValue en enum s. Será más rápido de construir, más rápido de buscar y más compacto de almacenar. No veo ninguna razón para usar cualquier estructura de datos concurrentes si no planea alterar el ConcurrentHashMap en sí mismo , al mismo tiempo.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda