1 package ch.hslu.exercises.sw06.ex2;
2
3 /**
4 * Eine Synchronisationshilfe, die es ermöglicht, einen oder mehrere Threads warten zu lassen, bis
5 * diese durch andere Threads aufgeweckt werden. Latches sperren so lange, bis sie einmal ausgelöst
6 * werden. Danach sind sie frei passierbar.
7 */
8 public class Latch implements Synch {
9
10 private boolean isClosed = true;
11
12 @Override
13 synchronized public void acquire() throws InterruptedException {
14 while (isClosed) {
15 this.wait();
16 }
17 }
18
19 @Override
20 synchronized public void release() {
21 isClosed = false;
22 this.notifyAll();
23 }
24 }