You are on page 1of 3

EXP 3 OS

Synchronous:

Code:

class Bus{
int ts,rs;
Bus(int ts){
this.ts=ts;
rs=ts;
}
synchronized void bookTicket(String user){
try{
if(rs>0){
Thread.sleep(1000);
rs--;
System.out.println("Seats for "+user+"is booked!!!");
System.out.println("Seats left:"+rs);
}
else{
System.out.println("Seats are full!!!");
}
}
catch(Exception e){}
}
}

class Passenger extends Thread{


Bus b;
String name;
Passenger(Bus b,String name){
this.b=b;
this.name=name;
}
public void run(){
b.bookTicket(this.name);
}
}
class Syncc{
public static void main(String args[]){
Bus myBus=new Bus(3);
System.out.println("Taran Shah C164 C3-2 60004220256");
Passenger user1=new Passenger(myBus,"user1");
Passenger user2=new Passenger(myBus,"user2");
user1.start();
user2.start();
}
}
Output:

Asynchronous:

Code:

class Bus{
int ts,rs;
Bus(int ts){
this.ts=ts;
rs=ts;
}
void bookTicket(String user){
try{
if(rs>0){
Thread.sleep(1000);
rs--;
System.out.println("Seats for "+user+"is booked!!!");
System.out.println("Seats left:"+rs);
}
else{
System.out.println("Seats are full!!!");
}
}
catch(Exception e){}
}
}

class Passenger extends Thread{


Bus b;
String name;
Passenger(Bus b,String name){
this.b=b;
this.name=name;
}
public void run(){
b.bookTicket(this.name);
}
}
public class Asyncc{
public static void main(String args[]){
Bus myBus=new Bus(3);
System.out.println("Taran Shah C164 C3-2 60004220256");
Passenger user1=new Passenger(myBus,"user1");
Passenger user2=new Passenger(myBus,"user2");
user1.start();
user2.start();
}
}

Output:

You might also like