Es una forma de comunicarse entre hilos e intercambiar información como un método getter dentro del ejecutable, en Java

¿Hay alguna manera de comunicarse entre subprocesos, como obtener variables con getters a medida que se actualizan en un subproceso diferente

Por ejemplo, si estoy cargando imágenes en un hilo ejecutable así:

Thread t1 = new Thread(new Runnable(){
    public void run(){
     //Ido the loading here
    }
}

¿hay alguna manera de comunicarme con eso, como obtener un valor de var, por ejemplo:

Thread t1 = new Thread(new Runnable(){
    public void run(){
     //Ido the loading here
name = "dsad";
    }
public void getName(){ return name }
}

pero no funciona

Respuesta 1

En cuanto a la comunicación de hilos, hay java.util.concurrent.Exchanger.

En su caso particular, también es posible usar CompletableFuture de Java 8, ya que Exchanger permite múltiples comunicaciones (ambos hilos continúan ejecutándose), lo que posiblemente no sea su caso.

Crear subprocesos manualmente puede causar diferentes problemas:

  • crear hilo cada vez es una operación costosa,
  • crear muchos subprocesos que se ejecutan al mismo tiempo implica posibles problemas del planificador, problemas de memoria (cada subproceso tiene su propia pila, ...),
  • publicar valores que no están en forma segura (vea los temas Publicación segura e Inicialización segura) puede causar carreras de datos, que son realmente malas

Por lo tanto, la combinación de java.util.concurrent.ExecutorServicey java.util.concurrent.CompletableFuturepuede permitirle una manera legible y segura de subprocesos para realizar una carga asincrónica.

Respuesta: 2

Tengo un RestTemplate que lo construyo con RestTemplateBuilder. Configuré el rootUri para el constructor. En el siguiente método (updateState1) a veces recibí el error "URI no es absoluto". Por ejemplo cuando llamé ...

Tengo actividad de fondo en la que escucho la ubicación de GPS. Encima tengo actividad de mapa. ¿Cómo puedo notificar la actividad del mapa cuando ocurrió un evento en segundo plano después de que la actividad ya ...

Estoy desarrollando un proyecto que analiza páginas web. Utilizo una biblioteca Java para el análisis de HTML, y devuelve un documento org.w3c.dom. Dado un nodo de etiqueta en mi documento dom, me gustaría saber toda la información de CSS ...

Así que estoy aprendiendo Google App Engine con Java. Al modificar archivos me di cuenta de que no siempre veo mis cambios. Intento hacer clic en el botón rojo para detener la aplicación web en eclipse y luego reiniciar el ...