Problem mit wait und notify

mp123

Grünschnabel
Hallo,
hab ein Programm geschrieben, wo 3 Threads paralell auf ein Lager zugreifen sollen.
Ein Thread soll das Lager auffüllen (Erzeuger) und zwei Threads (Konsument) es leeren. Es soll nur eine synchronisierte Methode geben. Wie mach ich denn das jetzt mit dem notify, weil jetzt warten nur die Konsument-Threads und der Erzeuger-Thread läuft.

Code:
  public synchronized void aenderungBestand(int x)
  {
  // Beginn kritischer Abschnitt
	  if(x>0){
		  
		  bestand+=x;
	//	  System.out.println(Thread.currentThread()+" 1");
	  }
	  
	  if(bestand==0){
		  
		  try{
//			  System.out.println(Thread.currentThread()+" 2");
			  wait();
//			  System.out.println(Thread.currentThread()+" 3");
		  }
		 catch(InterruptedException ie){
			 
//			 System.out.println("Warten wurde unterbrochen"+" 4");
//			 System.exit(1);
		 }
	  }
	  if(x<0){
	  bestand+=x;
	  }
//	  System.out.println(Thread.currentThread()+" 5");
	  notifyAll();
//	  System.out.println(Thread.currentThread()+" 6");
	  
      aendeungsnr++;
      if (x > 0)
        zugang += x;
      else
        abgang -= x;
// Ende des kritischen Abschnitts		
  }
 

Neue Beiträge

Zurück