个人认为下面是Java实现的最优的单例模式
这种实现方法采用内部静态类,
只在第一次调用getInstance方法的时候才实例化单例对象
如果不调用,就不会进行单例对象的实例化,
因此,既实现了延迟实例化,又不需要线程同步
引用
public class SingleTon {
private SingleTon(){}
public static SingleTon getInstance() {
return SingleTonHolder.instance;
}
private static class SingleTonHolder{
private static SingleTon instance=new SingleTon();
}
}
下面这种单例模式是应用最多的,同样不存在线程同步的问题
但是,不能实现延迟实例化
引用
public class SingleTon {
private SingleTon(){}
private static SingleTon s=new SingleTon();
public static SingleTon getInstance() {
return s;
}
}
这种单例模式,和上面的实现差不多,虽然能够延迟单例对象的实例化,但是都是在同一时间范围内完成的
引用
public class SingleTon {
private SingleTon(){}
private static SingleTon s;
static {
s=new SingleTon();
}
public static SingleTon getInstance() {
return s;
}
}
下面这种就是
还有两种解决方案,不在本帖讨论范围之内
1.采用synchronized的关键字同步getInstance方法
2.采用synchronized的关键字同步代码段,双重是否为空的判断
分享到:
相关推荐
python 线程同步机制(csdn)————程序
c++多线程同步——信号量。非常简单的MFC工程。
锁正是基于这种思路实现的一种线程同步机制。 在对共享数据加锁后,每个线程在访问共享数据时必须先申请相应的锁。一旦获得锁后,就可以访问共享数据,并且一个锁同一时刻只能被一个线程持有,这意味着获得锁后不会...
操作系统实验报告,原创,写得很认真的。 内容为进程与线程同步,有流程图及源代码等
多线程编程之四——线程的同步
在windows的环境下,创建一个控制台进程,此进程创建两个并发线程,一个是读线程,另一个是写线程。这两个线程共享一个数组A,写线程对数组分别进行10次写操作,每次写操作对A的每个元素赋一个相同的值;读线程对数组...
多线程编程之四——线程的同步-VC知识库文章[归纳].pdf
操作系统课程设计——多线程同步演示程序,采用visual C++编写
线程,同步与锁————Lock你到底锁住了谁?.htm
操作形同实验——进程同步和互斥 (1) 通过编写程序实现进程同步和...(2) 了解Windows2000/XP中多线程的并发执行机制,线程间的同步和互斥。 (3) 学习使用Windows2000/XP中基本的同步对象,掌握相应的API函数。
非常好的MFC多线程同步代码,附带代码说明!非常适合刚接触多线程程序员。。
多线程编程之四——线程的同步 到此介绍 要源代码的给我留言哈或邮箱storyxiao@163.com
c++多线程编程之四——线程的同步.pdf
创建线程的方法,子线程的问题 并行处理 同步:所线程等方法,将处理代码写入线程,对于新手非常容易上手
在《秒杀多线程系列》的前十五篇中介绍多线程的相关概念,多线程同步互斥问题《秒杀多线程第四篇一个经典的多线程同步问题》及解决多线程同步互斥的常用方法——关键段、事件、互斥量、信号量、读写锁。为了让大家...
c#.net多线程同步.txt C#WebBrowser页面与WinForm交互技巧一.txt C#多线程编程-多细全.txt C#多线程编程简单实例.txt C#多线程窗体控件安全访问.txt C#多线程使用TextBox控件 .txt C#多线程注意点.txt Control的...
C#的多线程机制探索 doc 一.多线程的概念 二.操纵一个线程 三.线程的同步和通讯——生产者和消费者 四、线程池和定时器——多线程的自动管理
实例265——使用临界区对象(CriticalSeciton)实现线程同步 实例266——使用互斥对象(Mutex)实现线程同步 实例267——使用互斥对象(Mutex)实现不同进程间线程同步 实例268——使用信号量(Semaphore)实现...
Linux系统编程——线程同步与互斥:读写锁,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/46485735