首页 > 代码库 > java 实现支持多线程的单件模式

java 实现支持多线程的单件模式

          在我们写程序时,经常会用到单件模式,单件模式是一个类只拥有一个实例对象(或者拥有多个固定数量的实例对象)。下面我给出一个使用多线程的单件模式demo。

package com;public class Single {<span style="white-space:pre">	</span><span style="white-space:pre">	</span>private static Single _instance = null;<span style="white-space:pre">	</span><span style="white-space:pre">	</span>private static Object lock =  new Object();<span style="white-space:pre">	</span><span style="white-space:pre">	</span>//设置为私有构造函数,封死外部调用构造函数新建实例<span style="white-space:pre">	</span>private Single()<span style="white-space:pre">	</span>{<span style="white-space:pre">	</span>}<span style="white-space:pre">	</span><span style="white-space:pre">	</span>public static Single get()<span style="white-space:pre">	</span>{<span style="white-space:pre">		</span>if ( _instance == null )<span style="white-space:pre">		</span>{<span style="white-space:pre">			</span>//设置同步锁,以免多线程并发时,创建多个实例<span style="white-space:pre">			</span>synchronized (lock) {<span style="white-space:pre">				</span>if ( _instance == null )<span style="white-space:pre">				</span>{<span style="white-space:pre">					</span>return _instance = new Single();<span style="white-space:pre">				</span>}<span style="white-space:pre">			</span>}<span style="white-space:pre">		</span>}<span style="white-space:pre">		</span>return _instance;<span style="white-space:pre">	</span>}<span style="white-space:pre">		</span>}


java 实现支持多线程的单件模式