class Singleton { private static volatile Singleton instance = null; private Singleton(){} public static Singleton getInstance() { if (instance == null) { synchronized(Singleton.class) { if (instance== null) instance = new Singleton(); } } return instance; } }
public class MyClass { static class MyThreadClass extends Thread{ @Override public void run() { System.out.println("Hello"); try { Thread.sleep(1000); System.out.println("Hello Again"); } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String[] args){ MyThreadClass myThreadClass = new MyThreadClass(); myThreadClass.start(); MyThreadClass myThreadClass2 = new MyThreadClass(); myThreadClass2.start(); } }