From 2c2d79bc52940ebe1786d1aa45a26ffeee8ce966 Mon Sep 17 00:00:00 2001 From: trochas Date: Fri, 7 Nov 2025 12:15:24 +0100 Subject: [PATCH] correction scheduler et random delay dans canal) --- src/impl/Afficheur.java | 4 ++++ src/impl/Canal.java | 6 +++--- src/impl/Scheduler.java | 4 ++++ src/main.java | 5 +++-- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/impl/Afficheur.java b/src/impl/Afficheur.java index 932b36e..1b4193d 100644 --- a/src/impl/Afficheur.java +++ b/src/impl/Afficheur.java @@ -20,6 +20,10 @@ public class Afficheur implements ObserverdeCapteur { this.canalAsync = canal; } + public void setId(int id){ + this.id = id; + } + //AO1 - concrete servant @Override public void update(Capteur subject) { diff --git a/src/impl/Canal.java b/src/impl/Canal.java index 5ac1258..65a07fd 100644 --- a/src/impl/Canal.java +++ b/src/impl/Canal.java @@ -5,10 +5,10 @@ import interfaces.CapteurAsync; import interfaces.ObserverDeCapteurAsync; import interfaces.ObserverdeCapteur; +import java.util.Random; import java.util.concurrent.Future; public class Canal implements ObserverDeCapteurAsync, CapteurAsync { - private int delay=1000; private Scheduler scheduler; private ObserverdeCapteur afficher; private Capteur capteur; @@ -22,12 +22,12 @@ public class Canal implements ObserverDeCapteurAsync, CapteurAsync { //AO1 - proxy @Override public Future update(Capteur c) { - return scheduler.enquete(new UpdateReq(capteur,afficher),delay); + return scheduler.enquete(new UpdateReq(capteur,afficher),new Random().nextInt(1000)+500); } //AO2 - proxy @Override public Future getValue() { - return scheduler.enquete(new GetValueReq(capteur),delay); + return scheduler.enquete(new GetValueReq(capteur),new Random().nextInt(1000)+500); } } diff --git a/src/impl/Scheduler.java b/src/impl/Scheduler.java index e0f70d5..3d648bb 100644 --- a/src/impl/Scheduler.java +++ b/src/impl/Scheduler.java @@ -10,6 +10,10 @@ public class Scheduler { scheduler = Executors.newScheduledThreadPool(nThread); } + public ScheduledExecutorService getScheculer(){ + return this.scheduler; + } + public Future enquete(Callable task, long delay) { return scheduler.schedule(task, delay, TimeUnit.MICROSECONDS); } diff --git a/src/main.java b/src/main.java index 67574dc..47df5b0 100644 --- a/src/main.java +++ b/src/main.java @@ -12,7 +12,7 @@ import interfaces.ObserverdeCapteur; public class main { - static int NB_CANAUX = 20; + static int NB_CANAUX = 10; public static void main(String[] argv){ Scheduler scheduler = new Scheduler(NB_CANAUX); @@ -29,12 +29,13 @@ public class main { for(int i = 0; i c.tick(), 0, 500, TimeUnit.MILLISECONDS); } }