-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTicketSystem.java
More file actions
57 lines (45 loc) · 2.67 KB
/
TicketSystem.java
File metadata and controls
57 lines (45 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
public class TicketSystem {
public static void main(String[] args) {
//Created two thread groups for passengers and technicians
ThreadGroup passengerThreadGroup = new ThreadGroup("Passenger Thread group");
ThreadGroup technicianThreadGroup = new ThreadGroup("Technician Thread group");
// Created an instance of shared monitor
ServiceTicketMachine serviceTicketMachine = new TicketMachine("Ink Jet", 2, 5, 0, 0,passengerThreadGroup);
// Created runnable instances of the passengers
Runnable r1 = new Passenger(passengerThreadGroup,"Jay Cutler",serviceTicketMachine);
Runnable r2 = new Passenger(passengerThreadGroup,"Kevin Levrone",serviceTicketMachine);
Runnable r3 = new Passenger(passengerThreadGroup,"Sam Sulek",serviceTicketMachine);
Runnable r4 = new Passenger(passengerThreadGroup,"Ronnie Coleman",serviceTicketMachine);
// Created runnable instances of the technicians
Runnable r5 = new TicketPaperTechnician(technicianThreadGroup,"George",serviceTicketMachine);
Runnable r6 = new TicketTonerTechnician(technicianThreadGroup,"Sheldon",serviceTicketMachine);
// Created passenger threads and passed the runnable instances as the target
Thread passengerThreadOne = new Thread(passengerThreadGroup,r1,"Passenger One");
Thread passengerThreadTwo = new Thread(passengerThreadGroup,r2,"Passenger Two");
Thread passengerThreadThree = new Thread(passengerThreadGroup,r3,"Passenger Three");
Thread passengerThreadFour = new Thread(passengerThreadGroup,r4,"Passenger Four");
// Created technician threads and passed the runnable instances as the target
Thread paperTechnicianThread = new Thread(technicianThreadGroup,r5,"Ticket Technician");
Thread tonerTechnicianThread = new Thread(technicianThreadGroup,r6,"Toner Technician");
// Starting all the threads NEW -> RUNNABLE STATE
passengerThreadOne.start();
passengerThreadTwo.start();
passengerThreadThree.start();
passengerThreadFour.start();
paperTechnicianThread.start();
tonerTechnicianThread.start();
// Joining all the threads to execute concurrently
try {
passengerThreadOne.join();
passengerThreadTwo.join();
passengerThreadThree.join();
passengerThreadFour.join();
paperTechnicianThread.join();
tonerTechnicianThread.join();
} catch (InterruptedException e){
e.printStackTrace();
}
System.out.println(serviceTicketMachine);
System.out.println("Program has been executed successfully 🙂 !!!");
}
}