From c9a1fb1b398ad0517d9c3d39a2e3a456f265681a Mon Sep 17 00:00:00 2001 From: Tomasz Lelek Date: Thu, 26 Jan 2017 18:41:29 +0100 Subject: [PATCH] BAEL-614 move to proper package, move inner classes to separate classes --- .../concurrency/BlockingQueueUsage.java | 75 ------------------- .../blockingqueue/BlockingQueueUsage.java | 24 ++++++ .../blockingqueue/NumbersConsumer.java | 25 +++++++ .../blockingqueue/NumbersProducer.java | 31 ++++++++ 4 files changed, 80 insertions(+), 75 deletions(-) delete mode 100644 core-java/src/main/java/com/baeldung/concurrency/BlockingQueueUsage.java create mode 100644 core-java/src/main/java/com/baeldung/concurrent/blockingqueue/BlockingQueueUsage.java create mode 100644 core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersConsumer.java create mode 100644 core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersProducer.java diff --git a/core-java/src/main/java/com/baeldung/concurrency/BlockingQueueUsage.java b/core-java/src/main/java/com/baeldung/concurrency/BlockingQueueUsage.java deleted file mode 100644 index 0a38715245..0000000000 --- a/core-java/src/main/java/com/baeldung/concurrency/BlockingQueueUsage.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.baeldung.concurrency; - - -import java.util.Random; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; - -public class BlockingQueueUsage { - public static void main(String[] args) { - int BOUND = 10; - int N_PRODUCERS = 4; - int N_CONSUMERS = Runtime.getRuntime().availableProcessors(); - - - BlockingQueue queue = new LinkedBlockingQueue<>(BOUND); - - for (int i = 0; i < N_PRODUCERS; i++) { - new Thread(new NumbersProducer(queue)).start(); - } - - for (int j = 0; j < N_CONSUMERS; j++) { - new Thread(new NumbersConsumer(queue)).start(); - } - } - - - //producer - static class NumbersProducer implements Runnable { - private final Random random = new Random(); - private final BlockingQueue numbersQueue; - - - public NumbersProducer(BlockingQueue numbersQueue) { - this.numbersQueue = numbersQueue; - } - - - public void run() { - try { - generateNumbers(); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } - } - - private void generateNumbers() throws InterruptedException { - for (int i = 0; i < 100; i++) { - numbersQueue.put(random.nextInt(100)); - } - } - } - - //consumer - static class NumbersConsumer implements Runnable { - private final BlockingQueue queue; - - public NumbersConsumer(BlockingQueue queue) { - this.queue = queue; - } - - public void run() { - try { - while (true) { - Integer number = queue.take(); - String result = number.toString(); - System.out.println(Thread.currentThread().getName() + " result: " + result); - - } - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } - } - - } -} \ No newline at end of file diff --git a/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/BlockingQueueUsage.java b/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/BlockingQueueUsage.java new file mode 100644 index 0000000000..63c6cc4460 --- /dev/null +++ b/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/BlockingQueueUsage.java @@ -0,0 +1,24 @@ +package com.baeldung.concurrent.blockingqueue; + + +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; + +public class BlockingQueueUsage { + public static void main(String[] args) { + int BOUND = 10; + int N_PRODUCERS = 4; + int N_CONSUMERS = Runtime.getRuntime().availableProcessors(); + + + BlockingQueue queue = new LinkedBlockingQueue<>(BOUND); + + for (int i = 0; i < N_PRODUCERS; i++) { + new Thread(new NumbersProducer(queue)).start(); + } + + for (int j = 0; j < N_CONSUMERS; j++) { + new Thread(new NumbersConsumer(queue)).start(); + } + } +} \ No newline at end of file diff --git a/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersConsumer.java b/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersConsumer.java new file mode 100644 index 0000000000..110a801acc --- /dev/null +++ b/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersConsumer.java @@ -0,0 +1,25 @@ +package com.baeldung.concurrent.blockingqueue; + + +import java.util.concurrent.BlockingQueue; + +class NumbersConsumer implements Runnable { + private final BlockingQueue queue; + + public NumbersConsumer(BlockingQueue queue) { + this.queue = queue; + } + + public void run() { + try { + while (true) { + Integer number = queue.take(); + String result = number.toString(); + System.out.println(Thread.currentThread().getName() + " result: " + result); + + } + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } +} \ No newline at end of file diff --git a/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersProducer.java b/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersProducer.java new file mode 100644 index 0000000000..c9e91cd077 --- /dev/null +++ b/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersProducer.java @@ -0,0 +1,31 @@ +package com.baeldung.concurrent.blockingqueue; + + +import java.util.Random; +import java.util.concurrent.BlockingQueue; + + +class NumbersProducer implements Runnable { + private final Random random = new Random(); + private final BlockingQueue numbersQueue; + + + public NumbersProducer(BlockingQueue numbersQueue) { + this.numbersQueue = numbersQueue; + } + + + public void run() { + try { + generateNumbers(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + + private void generateNumbers() throws InterruptedException { + for (int i = 0; i < 100; i++) { + numbersQueue.put(random.nextInt(100)); + } + } +} \ No newline at end of file