Articles of sincronizado

Si un método sincronizado llama a otro método no sincronizado, ¿hay un locking en el método no sincronizado?

En Java, si un método sincronizado contiene una llamada a un sistema no sincronizado, ¿puede otro método seguir accediendo al método no sincronizado al mismo tiempo? Básicamente, lo que estoy preguntando es que todo en el método sincronizado tiene un locking (incluidas las llamadas a otros métodos sincronizados)? Muchas gracias

Hacer dos métodos sincronizados ejecutar simultáneamente

Tengo 4 métodos ( m1 , m2 , m3 y m4 ) en una clase. El método m1 , m2 y m3 son métodos synchronized . Además, tengo 4 hilos t1 , t2 , t3 y t4 respectivamente. Si t1 accede al método m1 (método sincronizado), ¿podría t2 acceder al método m2 (método sincronizado) simultáneamente? […]

¿@Synchronized garantiza la seguridad del hilo o no?

Con referencia a esta respuesta , me pregunto si esto es correcto. @synchronized no hace que ningún código sea “seguro para subprocesos” Como traté de encontrar cualquier documentación o enlace para apoyar esta statement, no tuve éxito. Cualquier comentario y / o respuesta será apreciado en esto. Para una mejor seguridad de los hilos, podemos […]

Concepto de subprocesamiento Java y método join ()

Estoy confundido en el método join() utilizado en Threads en Java. En el siguiente código: // Using join() to wait for threads to finish. class NewThread implements Runnable { String name; // name of thread Thread t; NewThread(String threadname) { name = threadname; t = new Thread(this, name); System.out.println(“New thread: ” + t); t.start(); // […]

¿Es ConcurrentHashMap totalmente seguro?

este es un pasaje de JavaDoc sobre ConcurrentHashMap . Dice que las operaciones de recuperación generalmente no se bloquean, por lo que pueden superponerse con las operaciones de actualización. ¿Esto significa que el método get() no es seguro para subprocesos? “Sin embargo, aunque todas las operaciones son seguras para subprocesos, las operaciones de recuperación no […]

¿Deben estar sincronizados los getters y setters?

private double value; public synchronized void setValue(double value) { this.value = value; } public double getValue() { return this.value; } En el ejemplo anterior, ¿hay algún punto para sincronizar el captador?

¿Cuál es la diferencia entre sincronizado en lockObject y usando esto como el locking?

Sé la diferencia entre el método sincronizado y el bloque sincronizado, pero no estoy seguro de la parte sincronizada del bloque. Asumiendo que tengo este código class Test { private int x=0; private Object lockObject = new Object(); public void incBlock() { synchronized(lockObject) { x++; } System.out.println(“x=”+x); } public void incThis() { // same as […]

En secciones críticas de Java, ¿en qué debería sincronizar?

En Java, la forma idiomática de declarar secciones críticas en el código es la siguiente: private void doSomething() { // thread-safe code synchronized(this) { // thread-unsafe code } // thread-safe code } Casi todos los bloques se sincronizan en this , pero ¿hay alguna razón particular para esto? ¿Hay otras posibilidades? ¿Hay alguna mejor práctica […]

Objeto de locking estático frente a no estático en bloque sincronizado

Intentando visualizar y entender la sincronización . ¿Cuáles son las diferencias entre usar un objeto de locking estático (código A) y un objeto de locking no estático (código B) para un bloque sincronizado ? ¿Cómo difiere en las aplicaciones prácticas? ¿Cuáles son las dificultades que uno tendría que el otro no tendría? ¿Cuáles son los […]

¿Sucede antes relaciones con campos volátiles y bloques sincronizados en Java y su impacto en variables no volátiles?

Todavía soy bastante nuevo en el concepto de enhebrar y trato de entender más sobre él. Recientemente, me encontré con una publicación de blog sobre What Volatile Means en Java de Jeremy Manson, donde escribe: Cuando un hilo escribe en una variable volátil, y otro hilo ve esa escritura, el primer hilo le dice al […]