Java Aspetta che il thread finisca

Ho un thread che scarica i dati e voglio aspettare fino al termine del download prima di caricare i dati. C’è un modo standard per farlo?

Ulteriori informazioni:

Ho una class Download che ottiene i dati da un URL (POJO serializzati). Il download è eseguibile e osservabile. Tiene traccia dei byte scaricati e delle dimensioni del download. Ho una barra di avanzamento che mostra i progressi per l’utente. La GUI osserva Download per aggiornare la barra di avanzamento.

Quando il POJO viene scaricato, voglio ottenerlo e passare al passaggio successivo. Ogni fase deve attendere la fine del precedente. Il problema è che non riesco a pensare a un modo per mettere in pausa la mia applicazione in attesa del thread di download. Al termine del download, desidero chiamare download.getObject () che restituirà i dati come object. Posso quindi lanciarlo e andare avanti con il prossimo download.

Ho una class helper che gestisce gli URL per il download e fa tutte le chiamate al download. Questa chiamata chiamerà getObject e farà il casting. Il Gui chiama helper.getUser (). l’helper avvia il thread in esecuzione e voglio che sappia quando è finito, in modo che possa restituire l’object cast.

Qualche suggerimento / esempi? Sono agli inizi di questo progetto, quindi sono disposto a cambiarlo.

Grazie gentilmente

Aggiornare:

Ho seguito http://download.oracle.com/javase/6/docs/api/javax/swing/SwingWorker.html#get e usato modal per bloccare fino al termine del thread. Il codice era molto disordinato e non mi piace questo approccio. Continuerò a cercare di trovare un modo “pulito” per gestire il stream di lavoro dei processi di download.