OnlyOneInMethod.java Source code

Java tutorial

Introduction

Here is the source code for OnlyOneInMethod.java

Source

public class OnlyOneInMethod extends Object {
    private String objID;

    public OnlyOneInMethod(String objID) {
        this.objID = objID;
    }

    public synchronized void doStuff(int val) {
        print("entering doStuff()");
        int num = val * 2 + objID.length();
        print("local variable num=" + num);

        try {
            Thread.sleep(2000);
        } catch (InterruptedException x) {
        }

        print("leaving doStuff()");
    }

    public void print(String msg) {
        threadPrint("objID=" + objID + " - " + msg);
    }

    public static void threadPrint(String msg) {
        String threadName = Thread.currentThread().getName();
        System.out.println(threadName + ": " + msg);
    }

    public static void main(String[] args) {
        final OnlyOneInMethod ooim = new OnlyOneInMethod("obj1");

        Runnable runA = new Runnable() {
            public void run() {
                ooim.doStuff(3);
            }
        };

        Thread threadA = new Thread(runA, "threadA");
        threadA.start();

        try {
            Thread.sleep(200);
        } catch (InterruptedException x) {
        }

        Runnable runB = new Runnable() {
            public void run() {
                ooim.doStuff(7);
            }
        };

        Thread threadB = new Thread(runB, "threadB");
        threadB.start();
    }
}