Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Synchronizowanie watków w Javie

yogi455 27 Lut 2010 18:47 693 1
  • #1 27 Lut 2010 18:47
    yogi455
    Poziom 12  

    Witam, chciałem poprosić o radę, gdyż jestem początkujący w Java i nie za bardzo wiem dlaczego mój program nie chce się zakończyć. Na moje oko gubi wątek główny.

    Code:
    class Watek extends Thread{
    
       public static Object w = new Object();
       private String nazwa;
       private int sum;

       Watek(String nazwa){
          this.nazwa=nazwa;
       }
       public void run(){
          synchronized(w){
             while(sum<10){
                w.notify();
                for(int i=0; i<5; ++i){
                   
                   System.out.println("Watek: " +nazwa);
                }
                sum++;
                try{
                      w.wait();
                }
                catch(InterruptedException ie){
                }
             }
          }
       }
    }

    public class Main{
       
       public static void main(String args[]){
          System.out.println("Synchronizacja watkow!");
          Watek w1 = new Watek("PIERWSZY");
          Watek w2 = new Watek("DRUGI");
          w1.start();
          w2.start();
       }
    }


    Proszę pamiętać o używaniu znaczników code. - arnoldziq

    0 1
  • Pomocny post
    #2 27 Lut 2010 21:30
    przemo_wielki
    Poziom 23  

    Po:

    while{...}

    daj

    w.notifyAll();

    0