你是不是曾经有过这样的经历,在写一个名叫getInstance()方法时,特别计较写在方法前面的那个可恶的synchronized,让你无法下手,至少犹豫10秒钟,哈哈。
不管你们有没有过,我每次写单例时,都为这个synchronized搞的痛苦不堪,于是我痛下决心,在以后我的代码里不会再出现延时加载这一概念,我要的只是初始化而已,即时加载又有何妨呢?
只是下个决心而已,缘何要加个痛字,各位看管,是不是有点过分了。
其实不然,且听我慢慢道来。
我第一次与单例相识,那是一个深秋的深夜,那天我第一次听说了《设计模式》,我用一颗年轻的心打开了XX网站的某某网页,输入单例模式并敲下回车键,那一瞬间我的第一感觉就是愚昧与无知,当我还不懂得什么事单例的时候,竟然有数以万计的IT头脑已将它拥入怀抱,而我却在一秒钟前还沾沾自喜,以为发现了个桃花源。
于是乎,我用虔诚和渴求的心灵仔细的阅读了其中一篇,当时我觉得我就是未来的架构师,设计模式这么时髦的东西,我竟然一遍就看懂了,真是不可思议。
再后来,我的代码里到处是单例,哎,现在想来真是乱套。
直到有一天,我认识了多线程,我了解了生产者和消费者的多线程举例,并且也爱上了synchronized这个让我伤痛的词汇,毕竟只有它才能让我有一种100%控制程序运行的感性认识。
于是这个样子,我就一只脚踩了2只船,同时爱上了单例和synchronized,虽说以前学习单例的时候看到过synchronized,但是因为它华而不实的外表(单词太长了,记不住,当时不觉得有用)而被我跳过,看来她属于耐看型。
因为爱上了synchronized,所以更了解synchronized,当我再次同时写下单例和synchronized时,心中不禁感慨万分,我做了一个假设,如果一个web程序同时有1W个线程访问我写的单例时,那将是多么庞大而华丽的一个阵容,它们将排队,一个一个走过我的synchronized,想到这里我不禁为排在最后的这些线程捏了一把冷汗,这要排多久!如此一来我深爱的synchronized是多么的严厉和霸道啊。
于是我的同情心和爱心同时跑出来,到底该不该舍弃synchronized的呢?真是应验一句话:因为爱所以痛。杯具。
待续......
分享到:
相关推荐
单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式
单例模式和工厂模式结合应用,实现了产品的生产,适合用做课程设计,包含详细文档和代码。Java语言。喜欢的可以下载来看看那
单例模式 多例模式
QT 单例
static静态关键字和单例模式
1. 高内聚和低耦合:2. 单例模式和工厂模式:
自己用VC2010写的工厂模式和单例模式的实现
C++单例设计模式,单例模式 C++单例设计模式,单例模式
C#单例模式C#单例模式详解C#单例模式详解C#单例模式详解
php单例模式php单例模式php单例模式php单例模式
单例多例
提供外界访问的两个方法!--和单例类一起使用!面试时经常用到!
PHP 单例模式解析和实战 PHP 单例模式解析和实战 PHP 单例模式解析和实战
单例模式和策略模式示例源码--以最简单的代码诠释设计模式
单例省市级联 级联 单例模式 此例子不仅可以学历单例模式 也可以学习级联下拉的实现方式。
单例模式详解~~单例模式详解~~单例模式详解~~
java Singleton单例模式 java Singleton单例模式
单例的多种写法效率和方法同步比较说明,常用懒汉和饥汉模式等
几种单例模式的书写方式
unity中在场景切换时需要经常数据分享并处理,在此分享给大家利用C#模式和Unity模式分别实现的单例共享数据