Creo que por "invocar el hilo" el autor quiso decir algún tipo de devolución de llamada desde el hilo de trabajo al hilo principal para notificarlo sobre algún tipo de evento.
Hay muchas maneras de implementar ese tipo de devolución de llamada, pero utilizaría una interfaz de escucha simple. Algo como esto:
//Interface of the listener that listens to image load events
public interface ImageLoadListener {
void onImageLoadSuccess(ImageInformation image);
void onImageLoadFailed(ImageInformation image);
}
//Worker thread that loads images and notifies the listener about success
public class ImageLoader implements Runnable {
private final ImageLoadListener loadListener;
public ImageLoader(ImageLoadListener listener) {
this.loadListener = listener;
}
public void run() {
....
for (each image to load) {
....
if (load(image)) {
if (loadListener != null) {
loadListener.onImageLoadSuccess(image);
}
} else {
if (loadListener != null) {
loadListener.onImageLoadFailed(image);
}
}
}
}
}
//Main class that creates working threads and processes loaded images
public class MainClass {
...
//Main method for processing loaded image
void showImageAfterLoad(ImageInformation information) {
...
}
//Some button that should create the worker thread
void onSomeButtonClick() {
//Instantiate the listener interface. If image load is successful - run showImageAfterLoad function on MainClass
ImageLoadListener listener = new ImageLoadListener() {
void onImageLoadSuccess(ImageInformation image) {
MainClass.this.showImageAfterLoad(image);
}
void onImageLoadFailed(ImageInformation image) {
//Do nothing
}
};
//Create loader and it's thread
ImageLoader loader = new ImageLoader(listener);
new Thread(loader).start();
}
}
En caso de que necesite que sea escalable, te recomiendo que cambiar a alguna implementación del patrón de bus de eventos. Por ejemplo: http://code.google.com/p/simpleeventbus/
El bus de eventos es generalmente lo mismo que escribí en mi ejemplo, pero es muy escalable. La principal diferencia es que puede administrar varios tipos de eventos y registrar muchos oyentes a la vez.
En general, es un buen diseño para llamar a otros hilos desde el hilo principal. –
@ org.life.java, ¿qué quiere decir usted (y OP) cuando dice "llamar a otro hilo"? – aioobe
@aioobe Creo que OP quiere llamar al hilo principal desde otro hilo iniciado desde main. algo como http://ideone.com/G8gLN –