Lo habitual es que la clase que quiere recibir el mensaje le pase una referencia a si misma en el constructor del Thread, o usando un set, y que el Thread al terminar llame a un metodo de esa clase para notificarle que ha terminado, pasarle datos etc.
Puedes ver un ejemplo aqui:
http://fisheye5.cenqua.com/browse/we...ker.java?r=2.1
En este caso es un Thread que crea conexiones a base de datos y se las va pasando a una instancia de la clase padre que la llamo (ConnectionPool) a través de métodos de esta clase.
S!