From f656b579012efd59bb2bc44b9cc2255008337f1d Mon Sep 17 00:00:00 2001 From: Thibaud Date: Wed, 24 Oct 2018 00:18:51 +0200 Subject: [PATCH] Add async samples --- async/pom.xml | 15 +++++++++++++++ .../java/threadexamples/producerconsumer/App.java | 2 +- .../threadexamples/producerconsumer/Consumer.java | 6 +++--- .../threadexamples/producerconsumer/Item.java | 8 ++++---- .../threadexamples/producerconsumer/Producer.java | 6 +++--- pom.xml | 1 + 6 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 async/pom.xml diff --git a/async/pom.xml b/async/pom.xml new file mode 100644 index 0000000..ce6d56a --- /dev/null +++ b/async/pom.xml @@ -0,0 +1,15 @@ + + + + java-cookbook + fr.gasser + 1.0-SNAPSHOT + + 4.0.0 + + async + + + \ No newline at end of file diff --git a/async/src/main/java/threadexamples/producerconsumer/App.java b/async/src/main/java/threadexamples/producerconsumer/App.java index fcfc904..e74b0f7 100644 --- a/async/src/main/java/threadexamples/producerconsumer/App.java +++ b/async/src/main/java/threadexamples/producerconsumer/App.java @@ -21,7 +21,7 @@ public class App { for (int i = 0; i < 3; i++) { final Consumer consumer = new Consumer("Consumer_" + i, itemQueue); executorService.submit(() -> { - while(true) { + while (true) { consumer.consume(); } }); diff --git a/async/src/main/java/threadexamples/producerconsumer/Consumer.java b/async/src/main/java/threadexamples/producerconsumer/Consumer.java index 49b32a7..c210c3e 100644 --- a/async/src/main/java/threadexamples/producerconsumer/Consumer.java +++ b/async/src/main/java/threadexamples/producerconsumer/Consumer.java @@ -5,7 +5,7 @@ import org.slf4j.LoggerFactory; import java.util.concurrent.BlockingQueue; -public class Consumer { +class Consumer { private static final Logger LOGGER = LoggerFactory.getLogger(Consumer.class); @@ -13,12 +13,12 @@ public class Consumer { private String name; private int itemId; - public Consumer(String name, BlockingQueue itemQueue) { + Consumer(String name, BlockingQueue itemQueue) { this.itemQueue = itemQueue; this.name = name; } - public void consume() throws InterruptedException { + void consume() throws InterruptedException { final Item item = itemQueue.take(); LOGGER.info("Consumer [{}] consume item [{}] produced by [{}]", name, item.getId(), item.getProducer()); } diff --git a/async/src/main/java/threadexamples/producerconsumer/Item.java b/async/src/main/java/threadexamples/producerconsumer/Item.java index 9b300b3..72be41e 100644 --- a/async/src/main/java/threadexamples/producerconsumer/Item.java +++ b/async/src/main/java/threadexamples/producerconsumer/Item.java @@ -1,20 +1,20 @@ package threadexamples.producerconsumer; -public class Item { +class Item { private String producer; private int id; - public Item(String producer, int id) { + Item(String producer, int id) { this.producer = producer; this.id = id; } - public String getProducer() { + String getProducer() { return producer; } - public int getId() { + int getId() { return id; } diff --git a/async/src/main/java/threadexamples/producerconsumer/Producer.java b/async/src/main/java/threadexamples/producerconsumer/Producer.java index aad2efd..4fabf7d 100644 --- a/async/src/main/java/threadexamples/producerconsumer/Producer.java +++ b/async/src/main/java/threadexamples/producerconsumer/Producer.java @@ -3,18 +3,18 @@ package threadexamples.producerconsumer; import java.util.Random; import java.util.concurrent.BlockingQueue; -public class Producer { +class Producer { private BlockingQueue itemQueue; private String name; private int itemId; - public Producer(String name, BlockingQueue itemQueue) { + Producer(String name, BlockingQueue itemQueue) { this.itemQueue = itemQueue; this.name = name; } - public void produce() throws InterruptedException { + void produce() throws InterruptedException { itemQueue.put(new Item(name, itemId++)); Thread.sleep(new Random().nextInt(2000)); } diff --git a/pom.xml b/pom.xml index 3f97cb9..0263028 100644 --- a/pom.xml +++ b/pom.xml @@ -9,6 +9,7 @@ reflection gui + async