Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di mikej
    Registrato dal
    Oct 2008
    Messaggi
    21

    I thread: chi mi aiuta?

    Ciao a tutti,
    spero che qualcuno possa aiutarmi...
    Son riuscito ad ottenere la lista dei thread attivi nella mia applicazione e sono i seguenti

    currently active threads: 12
    0: Thread[AWT-Windows,6,main]
    1: Thread[AWT-Shutdown,5,main]
    2: Thread[Thread-1,5,main]
    3: Thread[Java2D Disposer,10,main]
    4: Thread[AWT-EventQueue-0,6,main]
    5: Thread[Image Animator 0,3,main]
    6: Thread[DestroyJavaVM,5,main]
    7: Thread[TimerQueue,5,main]
    8: Thread[leggidb,6,main]
    9: Thread[Thread-8,6,main]
    10: Thread[modificadb,6,main]
    11: null

    se volessi fermarli in qualsiasi punto dell'applicazione, come posso fare?


    Grazie!!!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    23
    non so se riesci a bloccarli cn thread.stop();
    ma mi sa tnt d no...però prova =)

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    stop è deprecato, prova interrupt

    Se poi vuoi riprenderli dovresti usare wait/notify
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it L'avatar di mikej
    Registrato dal
    Oct 2008
    Messaggi
    21
    Grazie ragazzi!!!! proverò
    Leggevo su alcuni post che un thread finisce quando termina il proprio metodo run: vi risulta?

    ciaooo||||

  5. #5
    Si, il metodo run definisce la vita del Thread, ovvero se all'interno del Thread.run() crei un ciclo infinito il Thread non terminerà di funzionare ad esclusione di particolari Exception oppure da un'interruzione manuale ( ctl+c ).

    Spero di esser stato esaustivo.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    142
    il metodo run fallo cominciare con un while(!stop), così quando vorrai fermare il thread ti basterà chiamare un metodo che andrà a settare a vero la variabile booleana stop, facendo terminare il thread.

    Come dice giandiego thread.stop() è deprecato.

    Per darti un'idea:

    Codice PHP:
    class  mioT extends Thread {
          
    boolean stop false;   
     
       public 
    void requestStop(){
            
    stop=true;
       }

    @
    Override
      
    public void run() {
               while(!
    stop) {
                   
    tutto quello che deve fare
              
    }
       }


  7. #7
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    som
    Come dice giandiego thread.stop() è deprecato.
    Grazie, ma qualcun'altro l'ha detto....

    Alex'87
    stop è deprecato, prova interrupt

    Se poi vuoi riprenderli dovresti usare wait/notify

    Date a Cesare ciò che è di Cesare, perchè il mio lo tengo IO!
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    142
    sorry .. è stata una svista

  9. #9
    Ciao a tutti ho un problema simile.
    Io ho "disegnato" due interfaccie grafiche in java.
    La seconda la ho scritta come un thread che viene attivato quando nella prima viene premuto un pulsante.....
    Io vorrei che una volta finito di fare quello che devo sulla seconda interfaccia premendo un pulsante questa mi si chiuda e io continuo a lavorare sulla prima.

    ....io so che per farla sparire basta usare il metodo setVisible(false);...pero' cosi facendo il thread rimane attivo!?!?...qualcuno mi aiuti....voglio uccidere questo thread ma sempra immortale.

    p.s. ho provato anche ad usare una System.exit(); nella parte di codice che gestisce l'evento di "bottone premuto " ma cosi facendo mi si chiude anche la prima interfaccia.

    Ciao a tutti e grazie

  10. #10
    Il modo migliore per fermare un Thread in esecuzione è impostare una variabile che il thread controlla occasionalmente. Non appena il Thread si accorge che la variabile è impostata, dovrebbe uscire dal proprio metodo run().

    NB: Thread.suspend() e Thread.stop() forniscono modalità asincrone per la sospensione del Thread. Questi metodi sono stati deprecati in quanto poco sicuri e non dovrebbero essere usati.

    Di seguito un esempio del modo corretto per fermare un Thread:

    Codice PHP:

    // Crea ed avvia il thread
    MyThread thread = new MyThread();
    thread.start();
        
    // Fa qualcosa...
        
    // Ferma il thread
    thread.allDone true;
        
    //////////////////////////////////////////////
    class MyThread extends Thread {
        
    boolean allDone false;
        
        
    // Questo metodo viene invocato quando 
        // il thread è in esecuzione
        
    public void run() {
            while (
    true) {
               
    // Fa qualcosa...
        
                
    if (allDone) {
                    return;
                }
     
                
    // Fa qualcosa...
            
    }
        }

    Gutta cavat lapidem
    [La goccia scava la pietra]
    ***
    (Ovidio)

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.