• Viernes 17 de Mayo de 2024, 06:33

Autor Tema:  Mi primera experiencia con los Threads  (Leído 824 veces)

SFRJ

  • Miembro MUY activo
  • ***
  • Mensajes: 115
    • Ver Perfil
Mi primera experiencia con los Threads
« en: Sábado 18 de Octubre de 2008, 08:09 »
0
Acabo de empezar a estudiar los Threads y ya tengo mogollon de dudas. Alomejor me podeis aclarar algunas...
He echo una pequena prueba en la que quiero detener un loop un tiempo para ejecutar otra tarea, y cuando esta tarea
termine que el loop continue.Parece mas dificil de lo que pensaba :)
No conozco bien las clases para trabajar con Threads no se si utilizo las correctas.
Mas o menos se lo que hace el meto wait() pero el metodo notify() no entiendo la explicacion dada en el API.

Esto se lo que Estoy intentando hacer haber que os parece:

Código: Text
  1. package paket;
  2.  
  3. public class MainTread {
  4.  
  5.     public synchronized void method1() {
  6.        
  7.         Irq irq = new Irq();       
  8.        
  9.         for (int i = 0; i < 10; i++) {
  10.             try {
  11.                 this.wait(500);
  12.                 System.out.println("[]");
  13.                
  14.                 irq.irqSignal();
  15.             } catch (InterruptedException e) {             
  16.                 e.printStackTrace();
  17.             }
  18.         }
  19.     }
  20.    
  21.     public static void main(String[] args) {
  22.         MainTread mt = new MainTread();
  23.         mt.method1();
  24.     }
  25. ////////////////////////////////////////////////
  26.  
  27. package paket;
  28.  
  29. import java.util.TimerTask;
  30.  
  31. public class Irq extends Thread  {
  32.  
  33.     private Thread th = new Thread();
  34.    
  35.     public synchronized void irqSignal() {     
  36.         th.getPriority();
  37.         try {
  38.             this.wait(3000);
  39.             //AKI QUIERO REALIZAR ALGO QUE TARDE UN TIEMPO.
  40.             //OSEA QUE HAGA ALGO MIENTRAS ESTA PAUSADO EL TREAD DE LA OTRA CLASE
  41.             int i = 0;
  42.            while(i < 300) {
  43.                  i++;
  44.            System.out.print(i);
  45.               }
  46.         } catch (InterruptedException e) {         
  47.             e.printStackTrace();
  48.         }
  49.         System.out.println("IRQ");
  50.     }
  51.  
  52.    
  53. }
  54.  
  55. }
  56.  

EL output es:

[]
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300IRQ
[]
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300IRQ
[]
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300IRQ
24252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300IRQ
[]........................