Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.util.concurrent.locks.ReentrantReadWriteLock;

public class Main {
    static final Main instance = new Main();
    int counter = 0;
    ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(true);

    public void read() {
        while (true) {
            rwl.readLock().lock();
            try {
                System.out.println("Counter is " + counter);
            } finally {
                rwl.readLock().unlock();
            }
            try {
                Thread.currentThread().sleep(1000);
            } catch (Exception ie) {
            }
        }
    }

    public void write() {
        while (true) {
            rwl.writeLock().lock();
            try {
                counter++;
                System.out.println("Incrementing counter.  Counter is " + counter);
            } finally {
                rwl.writeLock().unlock();
            }
            try {
                Thread.currentThread().sleep(3000);
            } catch (Exception ie) {
            }
        }
    }

    public static void main(String[] args) {
        instance.write();
        instance.read();
    }
}