Thread + stack + synchronization.

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();
}
}
 
O

Oliver Wong

ppp said:
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)

I'm correcting your terminology here: The exception didn't happen when
you tried to *compile* the program, but when you tried to *run* the program.
You compile the program using javac, and you run the program using java.

[most of code snipped]
Glowny.bufor.wstaw(s); // here is this error [...]

///////////////////
// 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();
}
}

The problem is that bufor is set to null by default, and you never
assign any other value to it.

- Oliver
 
P

ppp

You're right, that's becouse my english isn't so well, and this was a
mental summary.
thanks


Oliver Wong napisal(a):
ppp said:
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)

I'm correcting your terminology here: The exception didn't happen when
you tried to *compile* the program, but when you tried to *run* the program.
You compile the program using javac, and you run the program using java.

[most of code snipped]
Glowny.bufor.wstaw(s); // here is this error [...]

///////////////////
// 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();
}
}

The problem is that bufor is set to null by default, and you never
assign any other value to it.

- Oliver
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,821
Latest member
AleidaSchi

Latest Threads

Top