Hace condiciones de carrera sin medios compatibles con el proceso?

Ivaylo:

ConcurrentHashMap es seguro para subprocesos, pero puede ocurrir condiciones de carrera, porque según tengo entendido sólo partes del mapa se bloquean y sólo para operaciones de escritura lo que significa que si hay una operación de lectura, al mismo tiempo, habrá una condición de carrera.

Pero he leído también como aquí https://en.wikipedia.org/wiki/Thread_safety

Thread safe: Implementation is guaranteed to be free of race conditions when accessed by multiple threads simultaneously.

Puedo decir que ConcurrentHashMap es seguro para subprocesos, pero no totalmente sincronizado? ¿Cuál es la terminología aquí?

Solomon lento:

No sé que hay una definición formal de "seguro de rosca."

Cuando la gente dice que algunos de clase es seguro para hilos, por lo general significa que el uso concurrente de los métodos de la clase por varios hilos pueden no causar un comportamiento que sorprendería a un programador razonable que haya leído la documentación de la clase.

"Hilo de seguridad" para una Mapsignificar habría cosas como:

  • Si dos o más subprocesos de almacén de claves diferentes, todas las tiendas va a suceder.
  • Si dos o más hilos almacenar valores diferentes para la misma clave, al menos una de las tiendas va a suceder.
  • Si una almacena un hilo de valor para una clave, mientras que otros intentos de hilo para obtener el valor de esa tecla, entonces el hilo de la lectura o bien obtendrá el valor antiguo o el nuevo valor.
  • El valor de la clave K nunca va a cambiar debido a las múltiples hilos con el acceso y / o almacenar otras claves.
  • El uso simultáneo del mismo mapa de multiples hilos nunca causará la JVM para lanzar una VirtualMachineError, o hacer que segfault.
  • etcétera

Tenga en cuenta que algunos de los anteriores son ejemplos de condiciones de carrera que la clase misma es incapaz de evitar. "El hilo de seguridad" es no una promesa de que su programa estará libre de condiciones de carrera si se utiliza una clase segura hilo. Sólo promete que el propio código fuente de la clase no será la causa de los errores relacionados con los subprocesos en su programa.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=331275&siteId=1
Recomendado
Clasificación