From 07932b80249c83d50744b62a8db1037d6a223787 Mon Sep 17 00:00:00 2001 From: Ismail TAHA JANAN Date: Thu, 26 Jan 2023 10:30:19 +0100 Subject: [PATCH] first commit --- .idea/.gitignore | 3 + .idea/misc.xml | 6 + .idea/modules.xml | 8 ++ .idea/uiDesigner.xml | 124 ++++++++++++++++++ out/production/patisserie/main.class | Bin 0 -> 1651 bytes out/production/patisserie/model/Client.class | Bin 0 -> 880 bytes out/production/patisserie/model/Gateau.class | Bin 0 -> 345 bytes .../patisserie/model/Patisserie.class | Bin 0 -> 814 bytes .../patisserie/model/Patissier.class | Bin 0 -> 892 bytes patisserie.iml | 12 ++ src/main.java | 32 +++++ src/model/Client.java | 28 ++++ src/model/Gateau.java | 9 ++ src/model/Patisserie.java | 25 ++++ src/model/Patissier.java | 29 ++++ 15 files changed, 276 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 out/production/patisserie/main.class create mode 100644 out/production/patisserie/model/Client.class create mode 100644 out/production/patisserie/model/Gateau.class create mode 100644 out/production/patisserie/model/Patisserie.class create mode 100644 out/production/patisserie/model/Patissier.class create mode 100644 patisserie.iml create mode 100644 src/main.java create mode 100644 src/model/Client.java create mode 100644 src/model/Gateau.java create mode 100644 src/model/Patisserie.java create mode 100644 src/model/Patissier.java diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..a346fd7 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d33740e --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/out/production/patisserie/main.class b/out/production/patisserie/main.class new file mode 100644 index 0000000000000000000000000000000000000000..bfc15069f1151f8b7fe1669a1104eb7c0581f466 GIT binary patch literal 1651 zcmZux-Ez}L7(HvtQLHF&;$R?Yp`iro5Q6)g0;05FNHHiO#c8NZ|2FnE-dL7A(u!$% z-G}IPZ@6xUNv33`56}l;c!o}g^jphKY=}Ktt-ilK=j^xp_seI00k{rsA%(OF!$t-} z4C7n;F)w-C-z?qV*b;TcFmz4&Qe9_A7w6VZ3{y}$Xb7*g%9V^F5lUgf)I~-Z?8H^} zr0|sm3!}R57(=1xzMAFea^noSeuosHg&amrOb(z~Yleb1EaXwp6^}EVD7uGWAH=@T zH#|W#b<9Z{Q<_dDQan^yyn#1OoU(BmZw*wfZbwSAiCPd7(?U{E2Bp1|yO`i>{89JgGl# z<02M_NSn7rIq>UTJ(Q|RGeYgFNQ+jP>mx~kq`&D{DB)cb@7Z`CA23XIml*`jV0JVG z&+jUKs8g?mR;h%KY%F$F`q7J{risf0vCSpr7-iaF+8I~+VkK^Gh;U7-%aC`2I``Ij zDD`*GXsD(nv_q~=b{LKqAH9xxZk>UVYWY4_vZ<88Bs~>cmxr5FY4V7ChE%7c)BC$c zH=j7w~6lulpa9Z zqo|vzOA<5qm~JZl(<9wgV7NlF61|zWT-XKsz3aY8qju{sheo?MzlKlfD~ro?@1=Ay zyMi=D0?{7K+Agy09<18@F6`w!CB0}AjN#vKau501!Y+aN-w(J=uRT z;Jx^&_YX|ZKgGhO=}9E?}Gv z_!z;R#0?z7JruA?^L2{Yq8m+9dq7zWMDtU8M&l{6-oQ;56#Ku;Ij|8;lyR%ORtvYW zM6yg^1E1p#$uW%@D!5CS?oq@HjD0GXG2xmpO;{#!B8JN$sD{{Y*hjJ5y( literal 0 HcmV?d00001 diff --git a/out/production/patisserie/model/Client.class b/out/production/patisserie/model/Client.class new file mode 100644 index 0000000000000000000000000000000000000000..84ae77175022f05ee0c10cdc1109bc6d1c2327ee GIT binary patch literal 880 zcmZuv+fEZv6kVscf$0FHQow>xykMtQ>it&3gG3Tcy+lY8AE)gJ9Gp&@xv236{0m=w zHbL={=(|sTgx{gA(^jDBOlHsQv-e(m?KS(`&re?ftm2l57~%#J7LrH_WOkirPQ`V+ z?aIT(u55+^soTm^;i^EqXxB$Ef>8seg)}SytKDfyx3cCc=`q#pI-v>z=_@Iat@VSC z4$i7c_T*)JH<7`lfvkmNm>TN3wc|^tC6EkUDZ2uR;yvAU8Z!oFEgVOl>3;*W^R^R8 zC#tD{G%~f`6j7+$iax2PF^>}l7A!2HATT~0W|Kg@Bx4S^VY1ap3#YUg$u@P62F?g9 z9O|;+h0^zSmR2|R2S%Lgv&f~}nRa+j!O)SIK5|;#Ki+y@MkvVSXxzliE z)vg;jN7aTvJRK6q75~-Ju9No~_mQ3t}D$o-N#+gb6|<<5`#dQ z5A@2=YCnndv@7)1>BsmsOZyO|@;exBdpQ-_al~o4oOR_7uiGV4}1KV-LBHm=k!-Ms(j}>CLYnwa-|7Qr<`LD+|FLS;T3U>ehLJ uflHdgBywERdCV}HLxBYT&?u17Rb1=U+5q`)6Q6bcXs$v^>0zjjXKB0nT!^BMdL1p=ku1NbP! znnZ$TH8VSVJ9}T>i%$S!9QbhHDtH=eXc78ze&#Uc{4ut<8 literal 0 HcmV?d00001 diff --git a/out/production/patisserie/model/Patisserie.class b/out/production/patisserie/model/Patisserie.class new file mode 100644 index 0000000000000000000000000000000000000000..d314a46b4a6041df0b1683751275fd629cccebbf GIT binary patch literal 814 zcmZvaTW`}a6vzKgvS#(XHSH+(OE+$9x%7o6I#nPf(4+{^hKAUi+gim_+MvXlfX~DW z5@;%u_yBw;#BnmUrJzW*&+-5KaxVV$`^QfJJv`uW;QH_cR#0LHj^wfIL~=6fyy_pR zfng}^=!rHx2DjNd@UhCUnTs-`qt4SLk)J}H8V($w(QDSm9WT-a_+(Po* z)}f8PEN}%^sggvE<73LA-rQ~dE4I?>0yofL@KXJmgjDh_LwR41CemaHc^XSO?}Ur# zc6(ileMV(7R6;#bFSBu9C2wRuB2O)h2QoU4iMIBc(=+dNYVVetMWoVDeTY+vTp80u zXctBMKJKa1kjeMsEE%Zh+R`iYK0mY_!WK=#p(!)^Xdbj~k>y|;9-V32wBF2LflDVK zXrF+!PvO5iLHRrQ*Ia#zR{Kam1NN|r+jJ6z9(Qn;tOlAh))N%0TKgOLDFQ;(rr31w zc9|wn#rguRHlwv>w8!*co0+gQcZy5@;RIA=b%7&hoHk`vRQQN?%i)$Y#WjX6WI3?4 T*)D)4Kd+0Q5g6{}s{4Ncs!){z literal 0 HcmV?d00001 diff --git a/out/production/patisserie/model/Patissier.class b/out/production/patisserie/model/Patissier.class new file mode 100644 index 0000000000000000000000000000000000000000..410607d688f141eb06cec29407c053dc495ce657 GIT binary patch literal 892 zcmZuv$!-%t5Pj`!;>pBuoXrWuBnE;Ph}k!z9EgY%WEPRg634OKN;=px)+~Vd1Ac=G zXQV(_B)Ib#ocIdhwQV^uFr(?|>Z4r|J1@^q~yC=67)qED*hn8B=pIScd13ZzEe0x@5` zVrFXHinBsK(Vr$xV#z?x!YM3|)VQq`S? z1#(Bd*>VEud0{t@t$Qzp>`@hIj==me@Ghkg^QDC#zs1hR#GUA;zAg!{s7 zv}LteH*lV98zFJDOJKI}Z!?Q^O5WfV@Fr@?kq^U8LwY-XK&Iw4?RMSvl(q+lv0zX6 z0#hSgytt}>VEs`qbhsnm@-cz`tCoO??Z9q6dti45+~&3$dQG{hwA|EiCf0N{SmEGA zAW-H9Jv>~s9mfT(YqU0LNBB2OhY+Rmdl>I}F%_;UM7eTI_4x6Wz7CO%=B_doN79~M61gg*X&mAAit)V^T#Y55R^Z-fFl3O+-y xPQFMwa9laC9J*=x7U-Qv9@(LgJVjl@^&Yl7kaUBnF>);3HOM7!lXe8R{s5VjzLNj| literal 0 HcmV?d00001 diff --git a/patisserie.iml b/patisserie.iml new file mode 100644 index 0000000..fe594be --- /dev/null +++ b/patisserie.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main.java b/src/main.java new file mode 100644 index 0000000..9d6c74b --- /dev/null +++ b/src/main.java @@ -0,0 +1,32 @@ +import model.Client; +import model.Patisserie; +import model.Patissier; + +class main { + public static void main(String[] args) throws InterruptedException { + + Patisserie pp = new Patisserie(); + + Client c = new Client(pp); + Patissier p = new Patissier(pp); + + + for (int i = 0; i < 5; i++){ + Thread t = new Thread(p); + t.start(); + } + + for (int i = 0; i < 5; i++){ + Thread t = new Thread(c); + t.start(); + + + } + while (true){ + System.out.println("stock "+pp.gateauList.size()); + System.out.flush(); + } + + } +} + diff --git a/src/model/Client.java b/src/model/Client.java new file mode 100644 index 0000000..b0337ea --- /dev/null +++ b/src/model/Client.java @@ -0,0 +1,28 @@ +package model; + +public class Client implements Runnable{ + + Patisserie patisserie; + + public Client(Patisserie p ){ + patisserie = p; + }; + + + @Override + public void run() { + while (true){ + try { + Thread.sleep(2000); + if (patisserie.gateauList.size()>0){ + + + //System.out.println("client mangé il reste : "+ patisserie.gateauxReste()); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + patisserie.mange();} + } + + } +} diff --git a/src/model/Gateau.java b/src/model/Gateau.java new file mode 100644 index 0000000..0dd1595 --- /dev/null +++ b/src/model/Gateau.java @@ -0,0 +1,9 @@ +package model; + +public class Gateau { + public int name; + + public Gateau(){ + name = (int)(Math.random()); + } +} diff --git a/src/model/Patisserie.java b/src/model/Patisserie.java new file mode 100644 index 0000000..a28e9ae --- /dev/null +++ b/src/model/Patisserie.java @@ -0,0 +1,25 @@ +package model; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class Patisserie { + public List gateauList = new ArrayList(); + + + synchronized void depose(){ + gateauList.add(new Gateau()); + } + + synchronized void mange(){ + gateauList.remove(0); + } + + synchronized int gateauxReste() { + return gateauList.size(); + } + + + +} diff --git a/src/model/Patissier.java b/src/model/Patissier.java new file mode 100644 index 0000000..baa729d --- /dev/null +++ b/src/model/Patissier.java @@ -0,0 +1,29 @@ +package model; + +public class Patissier implements Runnable{ + + Patisserie patisserie; + + public Patissier(Patisserie p ){ + patisserie = p; + }; + + @Override + public void run() { + while (true){ + try { + + + if (patisserie.gateauList.size()<20){ + Thread.sleep(1000); + patisserie.depose(); + } + + //System.out.println("gateaux ajoute le stock est : "+ patisserie.gateauxReste()); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + + } +}