Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.util.concurrent.Semaphore;

public class Main {
    public static void main(String args[]) throws Exception {
        Semaphore sem = new Semaphore(1, true);
        Thread thrdA = new Thread(new SyncOutput(sem, "Message 1"));
        Thread thrdB = new Thread(new SyncOutput(sem, "Message 2!"));

        thrdA.start();
        thrdB.start();

        thrdA.join();
        thrdB.join();

    }
}

class SyncOutput implements Runnable {
    Semaphore sem;
    String msg;

    SyncOutput(Semaphore s, String m) {
        sem = s;
        msg = m;
    }

    public void run() {
        try {
            sem.acquire();
            System.out.println(msg);
            Thread.sleep(10);
        } catch (Exception exc) {
            System.out.println("Error Writing File");
        }
        sem.release();
    }
}