added ex U
This commit is contained in:
		
							
								
								
									
										22
									
								
								src/exercises/ex_u/FamilyMember.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/exercises/ex_u/FamilyMember.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| package exercises.ex_u; | ||||
|  | ||||
| import java.util.concurrent.CountDownLatch; | ||||
|  | ||||
| public class FamilyMember implements Runnable { | ||||
|     private final String name; | ||||
|     private final Vehicle vehicle; | ||||
|     private final CountDownLatch countDownLatch; | ||||
|  | ||||
|     public FamilyMember(String name, Vehicle vehicle, CountDownLatch countDownLatch) { | ||||
|         this.name = name; | ||||
|         this.vehicle = vehicle; | ||||
|         this.countDownLatch = countDownLatch; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void run() { | ||||
|         vehicle.addSuitcase(name + "'s suitcase"); | ||||
|         System.out.println(name + " has loaded their suitcase"); | ||||
|         countDownLatch.countDown(); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										23
									
								
								src/exercises/ex_u/TestingCountDownLatch_FamilyTrip.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/exercises/ex_u/TestingCountDownLatch_FamilyTrip.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| package exercises.ex_u; | ||||
|  | ||||
| import java.util.concurrent.CountDownLatch; | ||||
|  | ||||
| public class TestingCountDownLatch_FamilyTrip { | ||||
|     public static void main(String[] args) throws InterruptedException { | ||||
|         Vehicle seatAlhambra = new Vehicle(); | ||||
|         seatAlhambra.printVehicleContent(); | ||||
|         String[] family = {"Jean", "Anna", "Joseph", "Martha", "Eleonore", "Paul", "Catarina"}; | ||||
|         // Create a countDownLatch | ||||
|         CountDownLatch countDownLatch = new CountDownLatch(family.length); | ||||
|  | ||||
|         // Start the family members | ||||
|         // and synchronize them before the start | ||||
|         for (int i = 0; i < family.length; i++) { | ||||
|             new Thread(new FamilyMember(family[i], seatAlhambra, countDownLatch)).start(); | ||||
|         } | ||||
|         countDownLatch.await(); | ||||
|  | ||||
|         seatAlhambra.printVehicleContent(); | ||||
|         System.out.println("Family trip can start"); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										14
									
								
								src/exercises/ex_u/Vehicle.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/exercises/ex_u/Vehicle.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| package exercises.ex_u; | ||||
|  | ||||
| import java.util.Queue; | ||||
| import java.util.concurrent.ConcurrentLinkedQueue; | ||||
|  | ||||
| public class Vehicle { | ||||
|     private Queue<String> suitcases = new ConcurrentLinkedQueue<>(); | ||||
|     public void addSuitcase(String suitcase) { | ||||
|         suitcases.add(suitcase); | ||||
|     } | ||||
|     public void printVehicleContent() { | ||||
|         System.out.println("Suitcases: " + suitcases); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user