Singleton mode, the most common is the hunger mode and lazy mode, a direct instantiation of the object, a call method when the object is instantiated. In multithreaded mode, considering the performance and thread safety issues, we generally choose the following two more classic singleton patterns, while improving performance, while ensuring thread safety.
Dubble Check Instance
Static Inner class
Static inner class static inner class
public class Innersingleton {private static class Singletion {private static singletion single = new Singletion ();} public static Singletion getinstance () {return singletion.single;}}
Double judgment: dubble Check Instance
public class Dubblesingleton {private static Dubblesingleton ds;public static Dubblesingleton Getds () {if (null = = DS) {TR Y {thread.sleep (3000);//simulation initialization of the object's preparation time} catch (Exception e) {e.printstacktrace ();} Synchronized (Dubblesingleton.class) {if (null = = ds) {ds = new Dubblesingleton ();}}} return DS;}}
This article is from "I Love Big gold" blog, please be sure to keep this source http://1754966750.blog.51cto.com/7455444/1909800
Concurrent Programming (8): Single Case and multithreading