Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Aiuto Thread!!! Urgente!!!

    Ciao a tutti, ho realizzato una classe con tre thread utilizzando netbeans.
    alla pressione di un jbutton "via" vengono avviati i 3 thread uno dietro l'altro, separatamente ho altri tre jbutton "ferma" che fermano l'esecuzione dei 3 thread... il problema è che quando clicco sui i 3 jbutton "ferma" e poi clicco di nuovo su "via" mi viene fuori un'eccezione:
    ps: app1 è il package dell'applicazione
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException
            at java.lang.Thread.start(Thread.java:612)
            at app1.Main$4.mouseClicked(Main.java:165)
            at java.awt.Component.processMouseEvent(Component.java:6178)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
            at java.awt.Component.processEvent(Component.java:5940)
            at java.awt.Container.processEvent(Container.java:2105)
            at java.awt.Component.dispatchEventImpl(Component.java:4536)
            at java.awt.Container.dispatchEventImpl(Container.java:2163)
            at java.awt.Component.dispatchEvent(Component.java:4362)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4134)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
            at java.awt.Container.dispatchEventImpl(Container.java:2149)
            at java.awt.Window.dispatchEventImpl(Window.java:2478)
            at java.awt.Component.dispatchEvent(Component.java:4362)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
    come posso fare a risolverla???
    ho provato, per stoppare i thread, a usare le istruzioni t.stop, t.interrupt(), t.destroy() ma mi danno tutte lo stesso problema... come fare??????
    L'ascensore può scendere su e giù...
    by Prof di Sistemi

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Aiuto Thread!!! Urgente!!!

    Originariamente inviato da Harlandraka_94
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException
            at java.lang.Thread.start(Thread.java:612)
    Se hai invocato start() e sbuca fuori IllegalThreadStateException significa che il thread è: a) già partito ed ancora in esecuzione o b) già partito ma terminato.

    E una delle regole fondamentali dei thread in Java è che se un thread è già partito, anche se arrivasse nello stato "dead" (morto, quando il run() è terminato) NON puoi più farlo partire:

    Dal javadoc: It is never legal to start a thread more than once.

    Devi per forza istanziare un nuovo oggetto Thread e farlo partire.

    Originariamente inviato da Harlandraka_94
    ho provato, per stoppare i thread, a usare le istruzioni t.stop, t.interrupt(), t.destroy()
    stop() è deprecato e non deve essere più usato poiché potenzialmente pericoloso. Idem destroy(). interrupt() si può usare ma cosa succede dipende da cosa sta facendo il thread (vedere javadoc per i dettagli). Il punto è che con interrupt() il "lavoro" del thread deve essere "cooperativo", cioè deve essere stato scritto per sapere che può essere interrotto in questo modo.

    Originariamente inviato da Harlandraka_94
    come fare??????
    L'unica cosa "urgente", come dice il titolo, è studiare i thread ...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da Harlandraka_94
    Aiuto Thread!!! Urgente!!!
    Per favore, usiamo titoli più significativi, evitando le urgenze che su questo forum non esistono.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4

    Re: Moderazione

    Originariamente inviato da alka
    Per favore, usiamo titoli più significativi, evitando le urgenze che su questo forum non esistono.
    In realtà la cosa era molto urgente, mi serviva per finire il programma ieri sera, dato che stamattina l'ho esposto
    L'ascensore può scendere su e giù...
    by Prof di Sistemi

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Re: Re: Moderazione

    Originariamente inviato da Harlandraka_94
    In realtà la cosa era molto urgente, mi serviva per finire il programma ieri sera, dato che stamattina l'ho esposto
    Ma essendo questo un forum di discussione e non un servizio di consulenza a pagamento, è del tutto irrilevante quale urgenza avessi tu. Tutte le discussioni del forum hanno la medesima urgenza.
    Come espressamente indicato nel Regolamento interno, al punto 3.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.