Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MyData{
- private int value;
- boolean flag = true;
- synchronized public void set(int v)
- {
- System.out.println("Setter Executed!");
- while(flag!=true)
- try {wait();}catch(Exception e){}
- value=v;
- flag=false;
- notify();
- }
- synchronized public int get()
- {
- System.out.println("Getter Executed!");
- int x=0;
- while(flag!=false)
- try {wait();}catch(Exception e){}
- x=value;
- flag=true;
- notify();
- return x;
- }
- }
- class Producer extends Thread{
- MyData data;
- public Producer(MyData d){
- System.out.println("Producer constructor ran OK");
- data = d;
- }
- public void run(){
- System.out.println("Producer RUNNING OK");
- int count=1;
- while(true){
- data.set(count);
- System.out.println("Producer: " + count); //prints the value
- count++;
- }
- }
- }
- class Consumer extends Thread{
- MyData data;
- public Consumer(MyData d){
- System.out.println("Consumer constructor ran OK");
- data=d;
- }
- public void run(){
- System.out.println("Consumer RUNNING OK");
- int gotVal;
- while(true){
- gotVal = data.get();
- System.out.println("Consumer: " + gotVal); //prints the value
- }
- }
- }
- public class SharedData {
- public static void main(String args[]) {
- MyData data = new MyData();
- //System.out.println(data.get());
- Producer prod = new Producer(data);
- Consumer cons = new Consumer(data);
- prod.start();
- cons.start();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement