Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hey Leute,
ich hänge schon wieder an einer Aufgabe fest bzw. an einem Fehler:
Java:
Exception in thread "Thread-1" java.lang.NullPointerException
at Pro.run(Prozess.java:11)
Exception in thread "Thread-0" java.lang.NullPointerException
at Pro.run(Prozess.java:11)
Exception in thread "Thread-2" java.lang.NullPointerException
at Pro.run(Prozess.java:11)
Hier ist der Code:
Java:
class aufgabe4_2{
public static void main(String[] args){
Pro P1 = new Pro("R");
Pro P2 = new Pro("X");
Pro P3 = new Pro("Y");
P1.start(); P2.start(); P3.start();
}
}
Java:
import java.util.*;
class Pro extends Thread{
String name;
Pro(String name){
this.name = name;}
Monitor mon;
public void run(){
Random rand = new Random();
int verbrauch = Math.abs(rand.nextInt())%30+1;
mon.fordert(verbrauch, this.name);
try{
Thread.sleep(Math.abs(rand.nextInt())%1000+1);
}catch(InterruptedException e){e.printStackTrace();}
mon.zuruck_gegeben(verbrauch,this.name);
}
}
Java:
class Monitor{
int vorrat = 30;
int verbrauch;
String nam;
int fordert(int verbauch, String name){
nam = name;
if(verbrauch<=vorrat){
this.verbrauch = verbrauch;
vorrat -= verbrauch;
System.out.println("Der Prozess "+name+" bekommt "+verbrauch+" Ressourcen!");
return verbrauch;}
else
System.out.println("Keine genügend Ressourcen!");
return -1;
}
int zuruck_gegeben(int verbrauch, String ID){
this.verbrauch = verbrauch;
vorrat += verbrauch;
System.out.println("Ressourcen zurückgegeben von "+ID);
return vorrat;
}
}
Hm..Ok..
Und was soll diese initialisierung von monitor bewirken wenn ich ma so ganz dämmlich fragen darf..
Ohne diese fehlt für mich iwie nichts..
Und wie muss ich das machen?
Etwa: Monitor mon = 30 ? Ok, das hat auch nicht geklappt..
Ok..hier ist schon der nächste Fehler, denn als Ausgabe erhalte ich ein ganz merkwürdiges Ergebnis;
Java:
Der Prozess R bekommt 0 Ressourcen! Übrig bleibt: 30
Der Prozess X bekommt 0 Ressourcen! Übrig bleibt: 30
Der Prozess Y bekommt 0 Ressourcen! Übrig bleibt: 30
Ressourcen zurückgegeben von R : 16
Ressourcen zurückgegeben von X : 26
Ressourcen zurückgegeben von Y : 8
Die Ressourcen werden keine ahnung warum nicht verbraucht aber zurückgegeben..