我和单例的爱恨情仇

你是不是曾经有过这样的经历,在写一个名叫getInstance()方法时,特别计较写在方法前面的那个可恶的synchronized,让你无法下手,至少犹豫10秒钟,哈哈。

不管你们有没有过,我每次写单例时,都为这个synchronized搞的痛苦不堪,于是我痛下决心,在以后我的代码里不会再出现延时加载这一概念,我要的只是初始化而已,即时加载又有何妨呢?

只是下个决心而已,缘何要加个痛字,各位看管,是不是有点过分了。

其实不然,且听我慢慢道来。

我第一次与单例相识,那是一个深秋的深夜,那天我第一次听说了《设计模式》,我用一颗年轻的心打开了XX网站的某某网页,输入单例模式并敲下回车键,那一瞬间我的第一感觉就是愚昧与无知,当我还不懂得什么事单例的时候,竟然有数以万计的IT头脑已将它拥入怀抱,而我却在一秒钟前还沾沾自喜,以为发现了个桃花源。

于是乎,我用虔诚和渴求的心灵仔细的阅读了其中一篇,当时我觉得我就是未来的架构师,设计模式这么时髦的东西,我竟然一遍就看懂了,真是不可思议。

再后来,我的代码里到处是单例,哎,现在想来真是乱套。

直到有一天,我认识了多线程,我了解了生产者和消费者的多线程举例,并且也爱上了synchronized这个让我伤痛的词汇,毕竟只有它才能让我有一种100%控制程序运行的感性认识。

于是这个样子,我就一只脚踩了2只船,同时爱上了单例和synchronized,虽说以前学习单例的时候看到过synchronized,但是因为它华而不实的外表(单词太长了,记不住,当时不觉得有用)而被我跳过,看来她属于耐看型。

因为爱上了synchronized,所以更了解synchronized,当我再次同时写下单例和synchronized时,心中不禁感慨万分,我做了一个假设,如果一个web程序同时有1W个线程访问我写的单例时,那将是多么庞大而华丽的一个阵容,它们将排队,一个一个走过我的synchronized,想到这里我不禁为排在最后的这些线程捏了一把冷汗,这要排多久!如此一来我深爱的synchronized是多么的严厉和霸道啊。

于是我的同情心和爱心同时跑出来,到底该不该舍弃synchronized的呢?真是应验一句话:因为爱所以痛。杯具。

待续......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值