From f5ff3d11f1c1112d45203a917995c8ad32685081 Mon Sep 17 00:00:00 2001 From: ChaosLL1337 Date: Sat, 24 Oct 2026 19:19:09 +0200 Subject: [PATCH] =?UTF-8?q?Erste=20Version,=20unterst=C3=BCtzt=20von=20Cla?= =?UTF-8?q?ude?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/pp/Philosopher.java | 37 +++++++----------- .../target/classes/pp/Philosopher.class | Bin 904 -> 3067 bytes 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/pp.A1-CondPhilosophers/src/main/java/pp/Philosopher.java b/pp.A1-CondPhilosophers/src/main/java/pp/Philosopher.java index 0d7a9d9..f8ed855 100644 --- a/pp.A1-CondPhilosophers/src/main/java/pp/Philosopher.java +++ b/pp.A1-CondPhilosophers/src/main/java/pp/Philosopher.java @@ -4,9 +4,9 @@ import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; public class Philosopher extends Thread implements IPhilosopher { - static final int MAX_THINKING_DURATION_MS = 1000; - static final int MAX_EATING_DURATION_MS = 3000; - static final int MAX_TAKING_TIME_MS = 1000; + static final int MAX_THINKING_DURATION_MS = 1000; //aus Vorlesungsbeispiel + static final int MAX_EATING_DURATION_MS = 3000; //aus Vorlesungsbeispiel + boolean stop = false; private int seat; private Lock table; private Condition cond; @@ -14,8 +14,6 @@ public class Philosopher extends Thread implements IPhilosopher { private Philosopher right; private boolean essen; private int gegessen = 0; - boolean stop = false; - @Override public void setLeft(IPhilosopher left) { @@ -49,32 +47,28 @@ public class Philosopher extends Thread implements IPhilosopher { log(seat, "stopping"); this.stop = true; interrupt(); - } @Override public void run() { try { - while (!stop) { - log(seat, "überlegen"); - Thread.sleep(MAX_THINKING_DURATION_MS); - try { - startEating(); - - log(seat, "essen"); - Thread.sleep(MAX_EATING_DURATION_MS); - gegessen = gegessen +1; - log(seat, "gegessen "+gegessen); - } - finally { + while (!stop) { + log(seat, "überlegen"); + Thread.sleep(MAX_THINKING_DURATION_MS); + try { + startEating(); + log(seat, "essen"); + Thread.sleep(MAX_EATING_DURATION_MS); + gegessen = gegessen + 1; + log(seat, "gegessen " + gegessen); + } finally { stopEating(); } } - } - catch(InterruptedException e){ + } catch (InterruptedException e) { //Hier ist eine Exception gefunden worden + System.out.println("Hier ist ein Thread unterbrochen worden"); } - } private void startEating() throws InterruptedException { @@ -92,7 +86,6 @@ public class Philosopher extends Thread implements IPhilosopher { } } - private void stopEating() throws InterruptedException { table.lock(); try { diff --git a/pp.A1-CondPhilosophers/target/classes/pp/Philosopher.class b/pp.A1-CondPhilosophers/target/classes/pp/Philosopher.class index 6e9db54c7b923422fca7fcf556b0f643173c34b9..ec480980dbe985bc488e50e9909ce5d465982e17 100644 GIT binary patch literal 3067 zcma)8Yj+b>7k;JIKw1iEi-1t3>9H9)oyj{hq2hb< ze!qWG|3JUF7B0)h`9SH;L(59jDl6l$8*`_m}o2+=soYT;D&~mKckcQSw|8xpTq;#YWw8PM_p<2yN zR4m)|-D*X78WMisRyAm6MR0?G4s>cr&Z~Ll`^w=)K{mP!Y(h7sZS`zGrNw5LyvS@e z&?_?QJZruZ$jVj&cL`j=S7x|yw}E@Gog#rbYby;qilOzjz_N2?*D2RLPdP!(cFPNX zuE=M;9evoLW2b>#*sbB-zmV5pIBIFgb>^(Va%p}h(|;!&4av}hy$1FnLwjipApFnQ}p z82;LCbn*F=fk7PB(7R|ZD7sxXgVR<};TsP-fv=$_Q>e!(Zm5_!Y~YCKNsE(_8XZS9 zY+vJEVbuXOcjURUs!H@zDBzfm;|7WtYhr5YiXW&&2FR_EO+8U~EH^j7*aVD_G8gkn zoY1gu)KXrb2_8W9;$em;5brdZ}jn@{*v&pCyyI60gJ#BiH%HPou(|EnZf?VRpX6ozzzzVtg?a%)~$jabsG zI%C@R3jw%v*mVOx@XYF%3M%fLpTw&?wc0)Vw2n5sp2iz^Q^#9UfN!sICsb=Wm)!-G zi&{cdlOtw1aJ?%UK8{ngE*L2pHJv$I`MZm*yHKmX%rksc|*3z8^YJ|o`yYZji5yBfJ z*t|{oT;yyp)C+WEuS3hWu0WT^`m5mqhtCaQF;P6hgDC>IoEbdKBdCT7H2e!*46cQH zsqDbFNUmVx8jy5%U^6}K4M8@C^Hd!~?AipMFdBkCh3mN$?jFKz{}Z_0I$RBx>((8j zN-?4>yKMzqZpGTku+#J zL8&~p^3vIbCmE$fc!==BB;_b2k8_;hIEAA`7{(c*nA{Nt3VF^j_y5L!!dT7L{rxZZ zI_dGxavA@xt>v(e5h*QxI`Aok|DK~n;R3zcb`$KjeA)N~&T#1A@WLm^)K@-XRfKzc zZsJ@hM}g>l`L`b>Cvu1&7d0&NmT61|zPU=PQv8rONllUG`&qW2PbrLH8^*B*Cz!R9 zcnT%TO>t$Kvnib8cpj%?xx5hbEsb@leH$j|TRUDLUV?f?=np?x>i)f5_wPVtjrhlc z7DH)yIrQQV7WXm}s}}EMe1WsH_!)MA^DNsL-tHGEF~d*3i{zdev+_X9N*yibTTE=l eiv(-IOL&=Ml4ifg|0{Thvozn{#ryaWTYm=;dX@|T literal 904 zcma))%}>-&6vfY*nNDFGVfYk81q6}-61vh2h7AdEl4^{Q*_ZO5Pf9y!I|TnM7lecb zVeKD9Jh!b_M5Bw>_i^w2-Sf`t_q*#G0B^C@LJf5rjW#Sa6*^zMbI%FA=)^e)673x+ zG~b!XWIGD=?t0(Gh{D)l;Cu>97^m?d(8(xlwAy%rwn8J-UZ$XWHpUdjnb@mjGQJxh zX$D*q>5s#+L!BIWhapcU-PrfSzLyx;mxqlkFeyd34;yYP*s0E3eau$VU5Qq^Y_Ip( zD9oc1kAf6;p)kVw&*mf`z)Ff)eJ!y2`3)M~o?s-e6tmiOb90872^~L<{9%&lD09Nt zKTRFVKg}CkS#hD|e`eE$G>Zoh{AumS!^GEnMm*_MLR-=s%e1-%g{K@fah#9XKi3XT{mtxPtn|MGc)YiHDfrx?Ln-5>wpKLCo+g#qT-SC42K0_J?29@{>rN#l}Kd zDzZv~NSMVl)><5Mq>9A(|D;Z_YWgqK=l9fwlKKKK$ri0U>>{d~8w-~h{ax!Esq;B? zw#cez72Cw5S6D1rZ^#kWBf}Oe2>zqFVPe@5UqTSC?|t8t@;@Qgazx?zPlUos-f{H@ D;E0Y`