MyResource.java Source code

Java tutorial

Introduction

Here is the source code for MyResource.java

Source

class MyResource {
    boolean ready = false;

    synchronized void waitFor() throws Exception {
        System.out.println(Thread.currentThread().getName() + " is entering waitFor().");
        while (!ready)
            wait(10000, 500);

        System.out.println(Thread.currentThread().getName() + " resuming execution.");
    }

    synchronized void start() {
        ready = true;
        notifyAll();
    }
}

class MyThread implements Runnable {
    MyResource myResource;

    MyThread(String name, MyResource so) {
        myResource = so;
        new Thread(this, name).start();
    }

    public void run() {

        try {
            myResource.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

public class Main {
    public static void main(String args[]) throws Exception {
        MyResource sObj = new MyResource();
        new MyThread("MyThread", sObj);
        for (int i = 0; i < 10; i++) {
            Thread.sleep(50);
            System.out.print(".");
        }
        sObj.start();
    }
}