added ex U
This commit is contained in:
parent
28ab30e735
commit
1cfc40afed
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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user