Leyendo algunos hilos (common concurrency problems, volatile keyword, memory model) Estoy confundido sobre problemas de simultaneidad en Java.Si más de un hilo puede acceder a un campo ¿debería marcarse como volátil?
Tengo un montón de campos a los que se accede por más de un hilo. ¿Debería revisarlos y marcarlos como volátiles?
Cuando se construye una clase No estoy al tanto de si varios subprocesos tendrán acceso a ella, por lo que seguramente no es seguro dejar que cualquier campo no ser volátil, por lo que a mi entender hay muy pocos casos en que no lo utilizaría . ¿Es esto correcto?
Para mí, esto es específico para las JVM de la versión 1.5 y posteriores, pero no me siento limitado a responder sobre mi configuración específica.
Para este caso de uso en particular, consulte AtomicInteger, en lugar de utilizar 'synchronized' usted mismo. – erickson
De hecho. Solo quería demostrar las trampas de usar ciegamente 'sincronizado' sin entender exactamente lo que hace y no proporciona – bdonlan