Untitled
unknown
plain_text
3 years ago
2.1 kB
11
Indexable
// 22 JULY 2022 roji LP 1 cha lab madhe keleli B1 Assignment Synchronization................
package lab31273;
import java.util.concurrent.*;
class Mobile {
static int units = 0;
}
class Mythread extends Thread {
Semaphore sem;
String name;
public Mythread(Semaphore sem, String name) {
super(name);
this.sem = sem;
this.name = name;
}
@Override
public void run() {
// System.out.println(this.getPriority() + this.getName());
if(this.getName().equals("Samsung")) {
// System.out.println(name + " does not have access");
try {
System.out.println(name + " has consumers waiting for the product");
sem.acquire();
System.out.println(name + " starts production");
for(int i=0; i < 5; i++)
{
Mobile.units++;
System.out.println(name + ": " + Mobile.units);
// Thread.sleep(10);
}
}catch(Exception e) {
System.out.println(e);
}
System.out.println(name + " stops the production according to the requirement");
sem.release();
}
else {
try {
// System.out.println(name + " is waiting for a permit.");
sem.acquire();
System.out.println(name + " Consumer start buying samsung products");
if(Mobile.units != 0) {
for(int i=0; i < 5; i++)
{
Mobile.units--;
System.out.println(name + ": " + Mobile.units);
// Thread.sleep(10);
}
}
}catch(Exception e) {
System.out.println(e);
}
// System.out.println(name + " ");
sem.release();
}// System.out.println(this.getPriority() + this.getName());
}
}
public class lab31273 {
public static void main(String args[]) throws InterruptedException {
Semaphore sem = new Semaphore(1);
Mythread Mt1 = new Mythread(sem, "Samsung");
Mythread Mt2 = new Mythread(sem , "Tanmay");
Mt1.start();
Mt1.join();
Mt2.start();
// Mt2.join();
}
}
Editor is loading...