Redian新闻
>
请问关于c++实现singleton的问题?
avatar
请问关于c++实现singleton的问题?# Programming - 葵花宝典
t*e
1
两个多月前我和小福去参加一年一度的校友聚会。出国三年,每年大家都有新的变化,比如小福当年的舍友。
那个女孩三年前刚来的时候,一身肥大的班尼路。我说你的衣服很。。。有特点啊,她说“嗯,这可是牌子的”。我觉得她说“牌”字时的爆破音比疯狂的石头里的黑皮可有气势多了。
两年前再聚会的时候,她烫了可爱的韩国式卷发,挎着一款迪奥的熟女版黑色秋包,耳朵上的耳环足有哪咤踩的风火轮那么大。虽然浑身上下有一股不太和谐的别样情趣,但她折腾自己的勇气还是很让我钦佩。
一年前她工作了,出落得很有白领丽人的气质。可惜她说她不习惯讲中文了,而我的英格历士又太烂,竟然失去了和她交流的机会。她耸耸肩膀,一个袅娜的转身。她的屁股扭得很有风情,要不是小福拧了我一把,我怕是口水都要流下来了。
今年的聚会上我们没见到她。听说她过去一年热衷于爆乳出入各种派对,成功吊取金龟老外一名,前些天还在博客上贴出一枚提弗尼定制的九万美元订婚钻戒。小福和一班闺蜜在聊起这件事的时候,很大义凛然地说,只要男朋友对自己好就行了,钻戒就是一个形式;还说什么我们都是受过高等教育的知识分子、新时代女性,不贪图这物质享受。但从日后发生的事情来看,我觉得她在
avatar
w*e
2
【 以下文字转载自 JobHunting 讨论区 】
发信人: windforce (大怪兽), 信区: JobHunting
标 题: 请问关于c++实现singleton的问题?
发信站: BBS 未名空间站 (Sun Nov 16 06:56:48 2008), 转信
我觉得目标和方法是不是差不多这样?
public static的getinstance function返回唯一的instance。
declare private的ctor,copy ctor和copy assignment防止私自创建和copy。
只在第一次调用getinstance的时候才创建对象,所谓的laziness。
在创建instance的时候用mutex同步,但是以后就不用同步提高效率。
我写了一个如下,我觉得运行起来还可以,大家看看有什么问题吗?
class Singleton
{ public:
static Singleton* GetInstance();
~Singleton() {cout << "Dtor"<< endl;};
vo
avatar
m*t
3
亲情和爱情很不同吧?我觉得就是一个确定性的问题。你永远都不用担心自己的亲生父
母有一天变成别人的亲生父母了,而这不取决于他们怎样对你或你怎样对他们。而且,
一般的父母,都会被assume成爱孩子的,自己父母爱自己好像很天经地义啊, 不爱才
是奇怪;
可是爱情呢,本来陌生的两个人,没有任何的血缘或是不能摆脱的联系,就靠看对方的
言行和自己的感觉,其实是一种猜,时间很久了通过各种迹象证实了才能演变成一种信
任。那既然是猜,有猜对有猜错,怎么能判断呢?因为谁都不想去忍受自己付出很久才
发现猜错了那种很受伤甚至想自杀的悲伤,所以一般人都会希望能够有各种沿途的佐证
尽量早的告诉自己是不是猜错了。有些女生就会拿钱来衡量。
你是女生,当然觉得钱是再容易拿出来不过的东西。可是,有些女生可能会把这看成对
方是不是投入了真感情的标识。真的动了情,就不会考虑那么多自己付了多少钱的问题
吧,换言之,还是以省每一分钱为第一要义的人估计是没懂什么真感情吧。(当然,那
些要求超出对方支付能力的不算在内。)
哎,我就是老不愿意相信女人爱的是钻石本身。因为没有任何实用价值,甚至也不能够
经常佩戴因为不安全。如果,它不是
avatar
Q*g
5
Actually, neither implementation is thread-safe
http://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf
http://blogs.msdn.com/oldnewthing/archive/2004/03/08/85901.aspx

【在 w*******e 的大作中提到】
: 【 以下文字转载自 JobHunting 讨论区 】
: 发信人: windforce (大怪兽), 信区: JobHunting
: 标 题: 请问关于c++实现singleton的问题?
: 发信站: BBS 未名空间站 (Sun Nov 16 06:56:48 2008), 转信
: 我觉得目标和方法是不是差不多这样?
: public static的getinstance function返回唯一的instance。
: declare private的ctor,copy ctor和copy assignment防止私自创建和copy。
: 只在第一次调用getinstance的时候才创建对象,所谓的laziness。
: 在创建instance的时候用mutex同步,但是以后就不用同步提高效率。
: 我写了一个如下,我觉得运行起来还可以,大家看看有什么问题吗?

avatar
w*e
7

谢谢指导,看完这两篇文章清楚多了,尤其是第一个pdf文件。
不过普通的VC和GCC的编译器会是怎么样的呢?是像文章里说的那样吗?
还有第二个link里面说到的scoped static init不safe,但是我发现在vc和gcc下面,
如果
某个初始化函数像那个ComputeSomethingSlowly()一样非常慢。那么其他的thread都会
在不进入这个函数的同时被lock住,然后等第一个thread执行完
ComputeSomethingSlowly()再进一步。这个是不是并不是标准C++保证的,但是每个编
译器基本上都这么做?

【在 Q**g 的大作中提到】
: Actually, neither implementation is thread-safe
: http://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf
: http://blogs.msdn.com/oldnewthing/archive/2004/03/08/85901.aspx

avatar
h*y
8
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。