Advertisement
Omegq

Untitled

Dec 5th, 2024
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.75 KB | None | 0 0
  1. class MyData{
  2.     private int value;
  3.     boolean flag = true;
  4.    
  5.     synchronized public void set(int v)
  6.     {
  7.         System.out.println("Setter Executed!");
  8.         while(flag!=true)
  9.             try {wait();}catch(Exception e){}
  10.        
  11.         value=v;
  12.         flag=false;
  13.         notify();
  14.     }
  15.    
  16.     synchronized public int get()
  17.     {
  18.         System.out.println("Getter Executed!");
  19.         int x=0;
  20.         while(flag!=false)
  21.             try {wait();}catch(Exception e){}
  22.        
  23.        
  24.         x=value;
  25.         flag=true;
  26.         notify();
  27.        
  28.         return x;            
  29.     }
  30. }
  31.  
  32. class Producer extends Thread{
  33.     MyData data;
  34.     public Producer(MyData d){
  35.         System.out.println("Producer constructor ran OK");
  36.         data = d;
  37.     }
  38.     public void run(){
  39.         System.out.println("Producer RUNNING OK");
  40.         int count=1;
  41.         while(true){
  42.             data.set(count);
  43.             System.out.println("Producer: " + count);   //prints the value
  44.             count++;
  45.         }
  46.     }
  47. }
  48.  
  49. class Consumer extends Thread{
  50.     MyData data;
  51.     public Consumer(MyData d){
  52.         System.out.println("Consumer constructor ran OK");
  53.         data=d;
  54.     }
  55.     public void run(){
  56.         System.out.println("Consumer RUNNING OK");
  57.         int gotVal;
  58.         while(true){
  59.             gotVal = data.get();
  60.             System.out.println("Consumer: " + gotVal);  //prints the value
  61.         }
  62.     }
  63. }
  64.  
  65. public class SharedData {
  66.     public static void main(String args[]) {
  67.        
  68.     MyData data = new MyData();
  69.     //System.out.println(data.get());
  70.    
  71.     Producer prod = new Producer(data);
  72.     Consumer cons = new Consumer(data);
  73.    
  74.     prod.start();
  75.     cons.start();
  76.  
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement