P
ppp
I have problem with Producent-Consument-Buffer.
Below is my Buffer class with wstaw (in english PUSH) and pobierz (POP)
methods, main class Glowny and Producent class. I thint that is all ok,
but when i try to compile there is exception:
Exception in thread "Thread-0" java.lang.NullPointerException
at zadanie7a.Producent.run(Producent.java:14)
Maybe i forgot something? I don't have any idea what i'm doing wrong.
Please help.
//////////////////
//Buffer classs
//////////////////
import java.util.Stack;
public class Bufor {
private int dlugosc;
private Stack bufor;
public Bufor() {
this.dlugosc = 0;
}
public synchronized void wstaw(String znak) {
while (dlugosc == Glowny.rozBufora) {
try {
System.out.println("Czekam na zwolnienie bufora.");
wait();
} catch (InterruptedException e) {}
}
System.out.println("Wstawiam do bufora "+znak);
bufor.push(znak);
dlugosc++;
ntifyAll();
}
public synchronized void pobierz() {
while (dlugosc == 0) {
try {
System.out.println("Czekam na zapisanie bufora.");
wait();
} catch (InterruptedException e) {}
}
dlugosc--;
bufor.pop();
notifyAll();
}
}
///////////////////
// Producent class
//////////////////
import java.util.Random;
public class Producent extends Thread {
Random r = new Random();
String s = "Element";
public void run() {
while(true) {
Glowny.bufor.wstaw(s); // here is this error
try { sleep(new Random().nextInt(5000));}
catch (InterruptedException e) {}
}
}
}
///////////////////
// Main class
///////////////////
package zadanie7a;
public class Glowny {
public static int rozBufora = 10;
public static Bufor bufor;
public static String s = "Element";
public static void main(String[] args){
Producent p = new Producent();
Konsument k = new Konsument();
p.start();
}
}
Below is my Buffer class with wstaw (in english PUSH) and pobierz (POP)
methods, main class Glowny and Producent class. I thint that is all ok,
but when i try to compile there is exception:
Exception in thread "Thread-0" java.lang.NullPointerException
at zadanie7a.Producent.run(Producent.java:14)
Maybe i forgot something? I don't have any idea what i'm doing wrong.
Please help.
//////////////////
//Buffer classs
//////////////////
import java.util.Stack;
public class Bufor {
private int dlugosc;
private Stack bufor;
public Bufor() {
this.dlugosc = 0;
}
public synchronized void wstaw(String znak) {
while (dlugosc == Glowny.rozBufora) {
try {
System.out.println("Czekam na zwolnienie bufora.");
wait();
} catch (InterruptedException e) {}
}
System.out.println("Wstawiam do bufora "+znak);
bufor.push(znak);
dlugosc++;
ntifyAll();
}
public synchronized void pobierz() {
while (dlugosc == 0) {
try {
System.out.println("Czekam na zapisanie bufora.");
wait();
} catch (InterruptedException e) {}
}
dlugosc--;
bufor.pop();
notifyAll();
}
}
///////////////////
// Producent class
//////////////////
import java.util.Random;
public class Producent extends Thread {
Random r = new Random();
String s = "Element";
public void run() {
while(true) {
Glowny.bufor.wstaw(s); // here is this error
try { sleep(new Random().nextInt(5000));}
catch (InterruptedException e) {}
}
}
}
///////////////////
// Main class
///////////////////
package zadanie7a;
public class Glowny {
public static int rozBufora = 10;
public static Bufor bufor;
public static String s = "Element";
public static void main(String[] args){
Producent p = new Producent();
Konsument k = new Konsument();
p.start();
}
}