Parallel Programming WS 2014/2015 - File OneLane.java
public class OneLane { int nb; // northbound cars on bridge int sb; // southbound cars on bridge synchronized public void enter_sb() { while (nb != 0) { try { wait(); } catch (InterruptedException ie) {/* ok to ignore */} } sb++; notifyAll(); System.out.println("sb enter: " + sb + " southbound cars on lane"); } synchronized public void leave_sb() { while (sb == 0) { try { wait(); } catch (InterruptedException ie) {/* ok to ignore */} } sb--; System.out.println("sb leave: " + sb + " southbound cars on lane"); if (sb == 0) { notifyAll(); } } synchronized public void enter_nb() { while (sb != 0) { try { wait(); } catch (InterruptedException ie) {/* ok to ignore */} } nb++; notifyAll(); System.out.println("nb enter: " + nb + " northbound cars on lane"); } synchronized public void leave_nb() { while (nb == 0) { try { wait(); } catch (InterruptedException ie) {/* ok to ignore */} } nb--; System.out.println("nb leave: " + nb + " northbound cars on lane"); if (nb == 0) { notifyAll(); } } }
Generiert mit Camelot | Probleme mit Camelot? | Geändert am: 03.12.2014