StaticBlock.java Source code

Java tutorial

Introduction

Here is the source code for StaticBlock.java

Source

public class StaticBlock extends Object {
    public static synchronized void staticA() {
        System.out.println("entering staticA()");

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

        System.out.println("leaving staticA()");
    }

    public static void staticB() {
        synchronized (StaticBlock.class) {
            System.out.println("in staticB() : inside sync block");

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

    public static void main(String[] args) {
        Runnable runA = new Runnable() {
            public void run() {
                StaticBlock.staticA();
            }
        };

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

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

        Runnable runB = new Runnable() {
            public void run() {
                StaticBlock.staticB();
            }
        };

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