diff --git a/src/main/java/lab/Consumer.java b/src/main/java/lab/Consumer.java new file mode 100644 index 0000000000000000000000000000000000000000..9595674e34c816a08c86c1be631cfb59167bda4a --- /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 0000000000000000000000000000000000000000..be6be267a9529eed791759c64d545e1c89d8eb84 --- /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 a4483999c204b6c7b5bbcbfb085f2627f21310aa..420b6b4fae7f8e0b1b42dea430419c2b13e0f305 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(); - */ + } }