Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.concurrency;
- import java.util.concurrent.BrokenBarrierException;
- import java.util.concurrent.CyclicBarrier;
- public class PrintEvenOdd {
- public static void main(String[] args) {
- CyclicBarrier barrier = new CyclicBarrier(2);
- Thread oddThread = new Thread(() -> {
- try {
- for (int i = 1; i < 100; i += 2) {
- System.out.println(i);
- barrier.await(); // signal even to proceed
- barrier.await(); // wait for even to finish his task
- }
- } catch (InterruptedException | BrokenBarrierException e) {
- e.printStackTrace();
- }
- });
- Thread evenThread = new Thread(() -> {
- try {
- for (int i = 2; i <= 100; i += 2) {
- barrier.await(); // waiting for odd to finish his printing
- System.out.println(i);
- barrier.await(); // signal odd to proceed
- }
- } catch (Exception e) {
- }
- });
- oddThread.start();
- evenThread.start();
- }
- }
Add Comment
Please, Sign In to add comment