Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;

public class Main {
    public static void main(String[] argv) throws Exception {
        int capacity = 10;
        ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(capacity, false);

        int numWorkers = 2;
        Worker[] workers = new Worker[numWorkers];
        for (int i = 0; i < workers.length; i++) {
            workers[i] = new Worker(queue);
            workers[i].start();
        }

        for (int i = 0; i < 100; i++) {
            queue.put(i);
        }
    }
}

class Worker extends Thread {
    BlockingQueue<Integer> q;

    Worker(BlockingQueue<Integer> q) {
        this.q = q;
    }

    public void run() {
        try {
            while (true) {
                Integer x = q.take();
                System.out.println(q.peek());
                if (x == null) {
                    break;
                }
                System.out.println(x);
            }
        } catch (InterruptedException e) {
        }
    }
}