From 4c0d381426f2342a927f617efb34e46a21be37ad Mon Sep 17 00:00:00 2001 From: koz01 <koz01@PCFEIB113-26.msad.vsb.cz> Date: Tue, 5 Dec 2023 11:42:41 +0100 Subject: [PATCH] Implement consumer producer. --- src/main/java/lab/Consumer.java | 29 +++++++++++++++++++++ src/main/java/lab/Producer.java | 29 +++++++++++++++++++++ src/main/java/lab/TestProducerConsumer.java | 4 +-- 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 src/main/java/lab/Consumer.java create mode 100644 src/main/java/lab/Producer.java diff --git a/src/main/java/lab/Consumer.java b/src/main/java/lab/Consumer.java new file mode 100644 index 0000000..9595674 --- /dev/null +++ b/src/main/java/lab/Consumer.java @@ -0,0 +1,29 @@ +package lab; + +import java.util.Random; + +public class Consumer extends Thread { + + private final Buffer buffer; + private final int numberOfConsumer; + private final Random rnd = new Random(); + + public Consumer(Buffer buffer, int numberOfConsumer) { + this.buffer = buffer; + this.numberOfConsumer = numberOfConsumer; + } + + @Override + public void run() { + for (int i = 0; i < 5; i++) { + try { + buffer.get(numberOfConsumer); + Thread.sleep(rnd.nextInt(100, 1000)); + } catch (InterruptedException e) { + e.printStackTrace(); + return; + } + } + } + +} diff --git a/src/main/java/lab/Producer.java b/src/main/java/lab/Producer.java new file mode 100644 index 0000000..be6be26 --- /dev/null +++ b/src/main/java/lab/Producer.java @@ -0,0 +1,29 @@ +package lab; + +import java.util.Random; + +public class Producer extends Thread { + + private final Buffer buffer; + private final int numberOfProducer; + private final Random rnd = new Random(); + + public Producer(Buffer buffer, int numberOfProducer) { + this.buffer = buffer; + this.numberOfProducer = numberOfProducer; + } + + @Override + public void run() { + for (int i = 0; i < 5; i++) { + try { + buffer.put(i, numberOfProducer); + Thread.sleep(rnd.nextInt(1, 10)); + } catch (InterruptedException e) { + e.printStackTrace(); + return; + } + } + } + +} diff --git a/src/main/java/lab/TestProducerConsumer.java b/src/main/java/lab/TestProducerConsumer.java index a448399..420b6b4 100644 --- a/src/main/java/lab/TestProducerConsumer.java +++ b/src/main/java/lab/TestProducerConsumer.java @@ -6,7 +6,7 @@ public class TestProducerConsumer { Buffer buffer = new Buffer(4); - /* + Producer p1 = new Producer(buffer, 1); Producer p2 = new Producer(buffer, 2); Consumer c1 = new Consumer(buffer, 1); @@ -16,7 +16,7 @@ public class TestProducerConsumer { p2.start(); c1.start(); c2.start(); - */ + } } -- GitLab