TestSynchronized.java Source code

Java tutorial

Introduction

Here is the source code for TestSynchronized.java

Source

public class TestSynchronized {
    int taskID;

    public synchronized void performATask(int val) {
        taskID = val;
        print("before: " + taskID);
        try {
            Thread.sleep(4000);
        } catch (InterruptedException x) {
        }
        print("after: " + taskID);
    }

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

    public static void main(String[] args) throws Exception {
        final TestSynchronized tus = new TestSynchronized();

        Runnable runA = new Runnable() {
            public void run() {
                tus.performATask(1);
            }
        };

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

        Thread.sleep(2000);

        Runnable runB = new Runnable() {
            public void run() {
                tus.performATask(2);
            }
        };

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