Enviar una tarea en un nuevo hilo, que puede comunicarse con el hilo primario

Quiero enviar una tarea en un nuevo hilo, y quiero que esta tarea notifique al hilo primario durante sus diversas etapas de ejecución. Algo como se muestra a continuación:

void unzip(Path source, Path destination, ObserverThread observer) {
  int n = compute number of entries;
  observer.notify("n: " + n);
  while (there are more entries) {
    observer.notify("Unzipping " + name of entry);
    unzip the entry;
  }
  observer.notify("done");
}

¿Cuál será la solución estándar de solo biblioteca para este caso de uso? (Quiero dependencias externas).

Respuesta 1

Si está usando esto en Swing, entonces debe usar SwingWorker (parte de Java). Hay un ejemplo sobre cómo publicar resultados provisionales mientras se trabaja en segundo plano.

Si no está utilizando Swing, entonces Java estándar viene con la clase Executors . Puede crear un solo hilo ExecutorService y enviarle su Runnable. No ofrece una forma de publicar resultados en progreso, pero aún puede hacer devoluciones de llamada manualmente como se muestra en el ejemplo.

Respuesta: 2

He recibido ayuda sobre cómo agregar el archivo de texto, pero ahora parece que he roto algo más. No puedo "leer" el archivo. Lo que intento hacer es: ingresar datos de los campos de texto de la GUI ...

Estoy haciendo una llamada HTTPRest para enviar los datos a un tercero, mis datos están en el orden de 3 a 10 millones y solo puedo enviar un registro por solicitud junto con nombre de usuario y contraseña para ...

Estoy tratando de hacer un motor de juego completamente automatizado que deba funcionar según los eventos. El problema al que me enfrento es que hice una clase de mapa y se inicializó en la clase de juego. Casi ...

Pensé que esto sería automático: <rich: tooltip value = "Download (# {doc.size div 1024 + 1} KB)" /> Necesito calcular la cantidad de KB que tiene un archivo para descargar (el tamaño es integral) . En ...