[java] Metodo join() Clicca QUI per vedere il messaggio nel forum |
| luna |
Ciao!!
Qualcuno saprebbe spiegarmi come si usa questo particolare metodo in java?
Mi serve perche' sto facendo un progetto che simula una rete peer to peer e quando un peer vuole terminare, deve per prima cosa controllare che non ci siano dei peer che stanno scaricando file da lui...e credo che questo join faccia su per giu' questo!ma non so come applicarlo!
pleasseee aiutatemiii :( |
| Hamelin |
Intendi il metodo join () della classe Thread? È semplicemente il modo in cui si impone ad un thread di attendere la terminazione di un altro thread (simile alla waitpid () in Unix per le applicazioni multi-processo in linguaggio C). Nel tuo caso, imporresti al peer di attendere la terminazione del thread che gestisce il download del file verso un altro peer... che non è esattamente quello che vuoi (credo).
La documentazione ufficiale Sun è qui. |
| luna |
| no invece è proprio quello che voglio :D non far terminare il mio peer fin quando non ha finito di fornire il file a chi ha richiesto il download..peccato che non sappia proprio come implementarlo sul mio progetto :( |
| Hamelin |
Mah... ad ogni richiesta di download crei un nuovo thread che gestisce l'operazione. Magari memorizzi in una struttura dati (un'ArrayList, ad esempio) l'elenco dei thread/download (e li rimuovi una volta terminati). Quando poi l'utente manifesta il desiderio di chiudere il programma, iteri sulla struttura dati e fai un join per ognuno dei thread/download ancora attivi. È solo un'idea... probabilmente ce ne sono di migliori.
Comunque, ti consiglio di leggere un'introduzione al multi-threading in Java: nel capitolo corrispondente di TIJ, nel tutorial Sun o al limite qui. |
|
|
|