Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500

    [Java] Terminare Threads da main java

    Ciao a tutti ragazzi, avevo un problema con i Thread in java; in quanto durante l'esecuzione di tutto il codice vengono avviati vari threads, se però si viene a generare un errore devo chiudere l'intera esecuzione del programma, e quindi anche i threads attivi in quel momento. Il problema è che essendo nel main non so come fare ad avere il nome dei Threads attivi e poter eseguire un metodo su di loro oppure se c'è un metodo di terminazione generale.

    Grazie
    ciao
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    il tuo main deve avere un'hashmap in cui metti nome thread come chiave e u n riferimento al thread, in modo che in caso di errore scorri l'intera lista e li blocchi (con interrupt)
    Leggi bene a tal proposito la documentazione

  3. #3
    Originariamente inviato da valia
    il tuo main deve avere un'hashmap in cui metti nome thread come chiave e u n riferimento al thread, in modo che in caso di errore scorri l'intera lista e li blocchi (con interrupt)
    Leggi bene a tal proposito la documentazione
    L'interrupt lo userei solo come misura estrema in caso di timeout sul tentativo di terminazione "controllato".
    Per terminazione controllata intendo munire il thread di un flag (da controllare periodicamente se il thread stesso lavora con dei loop) e impostarlo a false in fase di shutdown per informarlo di terminare l'elaborazione. Trascorso un tempo confiurabile se la terminazione non è avvenuta si procede con un interrupt forzato.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ma infatti io quella la intendo come prima idea, è ovvio che quello che mette su è un monitor in cui periodicamente controlla i thread che non sono attivi....fa una purge della tabella insomma.
    Ovvio che se al momento dell'errore deve di colpo bloccare tutto, l'aspettare o l'andare in timeout non ha senso, lì ci vuole interrupt (non vedo altre soluzioni)

  5. #5
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    il mio problema però è che lavorando con le librerie jLibRtp non so che threads vengono avviati...quindi non riesco a gestirli nel modo che dite voi tramite hashmap!!

    io avvio solo un thread oltre a quello principale del main....questo thread fa parte della libreria e a sua volta avvierà altri thread perchè al momento dell'errore rilevato se faccio dal main:

    codice:
    System.out.println("Threads ancora attivi nella sessione "+ Thread.activeCount());
    mi da che ci sono attivi 5 thread che saranno gestiti dalla libreria jLibRtp!
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    allora brutalmente killa i processi java della macchina (anche se è una soluzione non bella)

  7. #7
    Originariamente inviato da valia
    allora brutalmente killa i processi java della macchina (anche se è una soluzione non bella)
    A questo punto si...
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  8. #8
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    allora brutalmente killa i processi java della macchina (anche se è una soluzione non bella)
    mmmmmmmmmm.....ma questo lo faccio sempre da java??? cioè se mi dici killare i processi java io so farlo in bash ma non in java!!
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    diciamo che è un po' più articolato farlo da java, ma non impossibile...ma sei su windows?

  10. #10
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    nono...linux...ubuntu 10.10
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.