Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: [JAVA]Arrestare Thread

  1. #1

    [JAVA]Arrestare Thread

    Salve a tutti
    Qualcuno mi sa dire come arrestare un Thread che è in attesa di una chiamata bloccante(ad esempio una lettura da console)??
    Chiamando il metodo stop della classe Thread dalla classe che ha avviato il thread funziona , però quel metodo è deprecato , e usando l'InterruptedException non riesco nemmeno

    Grazie
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  2. #2
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    Per interrompere un Thread si invoca il metodo interrupt().

    Ciao

  3. #3
    Ho provato , ma il Thread non si interrompe...
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  4. #4
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao. Allora io metterei una variabile booleana in maniera tale che quando essa è true--> thread gira, quando essa è false--> thread ferma.
    Non so se sia il metodo migliore ma per quel poco che ho utilizzato i thread ha sempre funzionato. Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  5. #5
    Anche io uso quel metodo , ma in questa situazioni non serve , in quanto il Tread è in attesa di una lettura da input e quindi il thread non è attivo.
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  6. #6
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    Scusa se il Thread è in attesa vuol dire che cmq è attivo, non potresti postare il codice?

    Ciao.

  7. #7
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao. Non potresti utilizzare la tecnica del wait-notify? Non va bene per il tuo caso? Attivi il thread ( semma a bassa priorità ) e lo metti in wait per poi utilizzare notify quando ne hai bisogno. Non so se può andare però io ci proverei, sempre se tu non l'hai già fatto
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  8. #8
    Allora il Thread all'interno del metodo run richiama un metodo di questo tipo :

    codice:
    private void ottieniValore(){
    String valore=in.readLine();
    }
    dove in è il flusso di input.
    Il problema è in questo metodo , non riesco a terminare il thread se non con il metodo stop().
    Il metodo wait/notify non credo faccia al mio caso

    Scusa se il Thread è in attesa vuol dire che cmq è attivo
    Un Thread che è in attesa di un operazione di I/O è reso inattivo o meglio è in uno stato di Not Runnable.

    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  9. #9
    Ho risolto con il metodo interrupt , però , data la struttura de mio codice , l'ho dovuto richiamare in due punti
    In uno per sbloccarlo dall'IO e in un altro per sbloccarlo in una successiva join , della quale mi ero proprio scordato

    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  10. #10
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    Io ho fatto qualche prova ma nn sono riuscito ad uscito dal readLine(), puoi spiegare come hai fatto?

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.