Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Skeletron en 10 Septiembre 2009, 23:12 pm



Título: Problemas con HILOS en Java
Publicado por: Skeletron en 10 Septiembre 2009, 23:12 pm
Hola chicos...
Resulta que tengo 3 objetos DOCTOR, que iteran un arraylist buscando turnos que sean de ellos... no lo borran ni hacen nada.. simplemente iteran "mirando"...

Todo bien hasta ahí...
PERO
Para detenerlos, tenemos lo sigueinte:
dentro de RUN tenemos un WHILE(CONTINUAR && ITERADOR.hasnext)
o sea.. mientras que CONTINUAR sea tru y haya proximo, sigue el Bucle...
Para detener los hilos, llamamos a un metodo del objeto que cambia el valor de COntinuar a FALSE..
Para que no haga el while, y termine el metodo RUN..

Ok........!!!
Perfecttooo!!!!

Pero ahora quiero que el hilo COMIENCE DE NUEVO!!!!!
Le doy Doctor.Start()

Y ME DA UN PUTISIMO ERRORRR!!!!!!!!!!!!!!!!!!!!!!

run:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException
        at java.lang.Thread.start(Thread.java:595)
        at GUI.GUIPrincipal.ComenzarActionPerformed(GUIPrincipal.java:184)
        at GUI.GUIPrincipal.access$000(GUIPrincipal.java:7)
        at GUI.GUIPrincipal$1.actionPerformed(GUIPrincipal.java:53)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2475)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


Título: Re: Problemas con HILOS en Java
Publicado por: egyware en 10 Septiembre 2009, 23:42 pm
No se porque pero solo puedes hacer una sola vez llamar start. Por lo menos una vez lo intente si quieres qu se repita puedes hacer que el hilo siga funcionando pero durmiendo.
No se mucho sobre sincronizacion de hilos, pero usa la clase Semaphore que esta en java.util.concurrence  si no me equivoco.
Adios.