多线程的饿汉式和懒汉式
导语:多线程的单例设计模式保证某个类中内存中只有一个对象,分为饿汉式和懒汉式,让我们了解一下吧!
(1)饿汉式:
class Single
{
private Single(){}//将构造函数私有化,不让别的`类建立该类对象
private static final Single s=new Single();//自己建立一个对象
public static Single getInstance()//提供一个公共访问方式
{
return s;
}
}
(2)懒汉式:
class Single
{
private Single(){}
private static Single s;
public static Single getInstance()
{
if(s==null)
s=new Single();
return s;
}
}
饿汉式和懒汉式的区别:
**
饿汉式是类一加载进内存就创建好了对象;
懒汉式则是类加载进内存的时候,对象还没有存在,只有调用了getInstance()方法时,对象才开始创建。
**
懒汉式是延迟加载,如果多个线程同时操作懒汉式时就有可能出现线程安全问题,解决线程安全问题
可以加同步来解决。但是加了同步之后,每一次都要比较锁,效率就变慢了,
所以可以加双重判断来提高程序效率。
如将上述懒汉式的Instance函数改成同步:
public static Single getInstance()
{
if(s==null)
{
synchronized(s)
{
if(s==null)
s=new Single();
}
}
return s;
}
-
21个java基本知识点
本文主要是一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。1.JVM相关(包括了各个版本的特性)对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很...
-
Java中如何获取Spring中配置的bean
Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。在Java中如何获取Spring中配置的'bean?下面本站小编带大家一起来看看详细操作,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!一、什么是Spring?Spring是一个轻量级的控...
-
Java中嵌入式MySQL的使用方法介绍
这篇文件主要介绍在Java中嵌入式MySQL的使用,对于一些的应用项目,提供安装版的Mysql,Oracle是必须的工作。但是有时候如果是一个小的工具,可安装或者移植性比较强的小软件。再去安装数据库可能就比较麻烦了。其实MySQL也有嵌入式的,不需要安装,在使用的过程中,会自动...
-
新手学习Java最高效的10个计划
对于新手来说学习Java如同堵天书,下面是本站小编收集的关于新手学习Java最高效的10个计划,希望可以为您的学习带来帮助!计划一:了解未来技术发展方向两耳不闻窗外事,在如今是不合适的,尤其是在瞬息万变的互联网时代,作为一个开发者技术跟不上可以去专研,思想要跟不上,...