易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Java 中多线程下的单例模式
Java 中多线程下的单例模式
package
namespace;
//单例模式--- 饿汉式
/*
class Person
{
private Person p=new Person ();
private Person () {}
public Person GetInstance()
{
return p;
}
}
*/
/*
* 下面是懒汉式,只在在单线种的情况下,而这种情况在多线程的情况下会多现在不安全现在,因为如果有两个线程同时访问到new Person ,那么我就生成两个对象,这样就违反了
* 单例模式下面一个是在多线
* */
/*
class Person
{
private Person person=null;
private Person () {}
public Person getInstance()
{
if(person==null)
{
person =new Person();
}
return person;
}
}*/
class
Person
{
private
Person person=
null
;
private
Person () {}
public
Person getInstance()
{
if
(person==
null
)
{
synchronized
(
this
)
{
if
(person==
null
)
person =
new
Person();
}
}
return
person ;
}
}
/*
*
* 这样在synchronized 线程控制块里面进行多线程的控制,就不会再出现多个线程访问时出现多个对象的情况了.
* 还有一点就是外面的person ==null 判断是用来提高效率的,不然第一次都要对锁进行判断,消耗浓资源
* 这样可以有次的提高效率
* */
public
class
Single {
public
static
void
main(String args[])
{
System.out.println(
"this is java"
);
}
}
/*
* 单例模式就是在内存中想只能存在一个对象,而不允许再实例化其他的对象
*
* */
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图