时间:2021-05-20
Java单例模式实现的几种方式
单例模式好多书上都是这么写的:
public class SingleTon1 { private SingleTon1(){ } private static SingleTon1 instance = null; public static SingleTon1 getInstance(){ if(instance == null){ instance = new SingleTon1(); } return instance; }}但是实际开发中是不会这么写的,因为有一个严重的问题,多线程并发访问的时候,可能会产生多个实例!!
下面列举几个常用的方法:
1.使用synchronized 关键字
2.加锁
3.利用静态变量:
以上就是常用的创建单例的模式:
Test测试代码:
package singleton; import singleton.SingleTon3.Nested; public class Test2 { public static void main(String[] args) { // TODO Auto-generated method stub Nested singleton; Myrunnable mm = new Myrunnable(); Myrunnable m1 = new Myrunnable(); Myrunnable2 m2 = new Myrunnable2(); new Thread(m1).start(); new Thread(m2).start(); if(m1.singleton == m2.singleton){ //是同一个 System.out.println("是同一个"); }else{ System.out.println("不是同一个"); } }} class Myrunnable implements Runnable{ Nested singleton; @Override public void run() { // TODO Auto-generated method stub singleton = SingleTon3.getNested(); SingleTon3.print(); } } class Myrunnable2 implements Runnable{ Nested singleton; @Override public void run() { // TODO Auto-generated method stub singleton = SingleTon3.getNested(); SingleTon3.print(); } }输出:
是同一个
thread_id:11
thread_id:10
以上就是对Java 单例模式的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Java单例模式的实现,对java单例模式的几种实现方法进行了整理:单例模式好多书上都是这么写的:publicclassSingleTon1{privateSi
单例模式的几种实现方式:一:饿汉式单例方式一:枚举方式获得单例对象方式二:静态属性获得单例对象方式三:静态方法获得单例对象二:懒汉式单例方式一:静态方法获得单例
PS:首先我们要先知道什么是单例,为什么要用单例,用的好处是什么等问题来看。1:java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种
一、单例模式a、单例模式分为四种:文件,类,基于__new__方法实现单例模式,基于metaclass方式实现b、类实现如下:classSigletion(ob
本文实例为大家分享了java单例模式实现面板切换的具体代码,供大家参考,具体内容如下1、首先介绍一下什么是单例模式: java单例模式是一种常见的设计模式,那