BAEL-614 thread local random

This commit is contained in:
Tomasz Lelek 2017-01-28 10:49:35 +01:00
parent 2c0494dd03
commit 0639b2cd6f

View File

@ -1,12 +1,11 @@
package com.baeldung.concurrent.blockingqueue; package com.baeldung.concurrent.blockingqueue;
import java.util.Random;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ThreadLocalRandom;
class NumbersProducer implements Runnable { class NumbersProducer implements Runnable {
private final Random random = new Random();
private final BlockingQueue<Integer> numbersQueue; private final BlockingQueue<Integer> numbersQueue;
private final int poisonPill; private final int poisonPill;
private final int poisonPillPerProducer; private final int poisonPillPerProducer;
@ -29,7 +28,7 @@ class NumbersProducer implements Runnable {
private void generateNumbers() throws InterruptedException { private void generateNumbers() throws InterruptedException {
for (int i = 0; i < 100; i++) { for (int i = 0; i < 100; i++) {
numbersQueue.put(random.nextInt(100)); numbersQueue.put(ThreadLocalRandom.current().nextInt(100));
} }
for (int j = 0; j < poisonPillPerProducer; j++) { for (int j = 0; j < poisonPillPerProducer; j++) {
numbersQueue.put(poisonPill); numbersQueue.put(poisonPill);