新人来,第二个帖子
因为接手的代码是用ace 写的,不得已去了解ace ,岂料查找文档和看代码都弄得我头昏眼花,来论坛散散心吧。最先映入眼帘的是一个ACE_Singleton对象,这个很好理解。比通常的模式多了个ACE_LOCK,据说是为了线程安全,也很好理解。不过我不明白放在这里能起什么作用。我阅读代码的能力不强,代码里面宏定义太多转来转去看得眼晕,所以就自己猜测了一下,然后冒昧地到这里来求得验证了:这里这个ACE_LOCK类型,是不是不会自动起什么作用,只是在子类实现的时候,可以通过ACE_Object_Manager::get_singleton_lock把相应的对象取出来呀?如果说有别的用处,是不是仅仅防止两个线程同时创建singleton对象而失去singleton的本意呢?期待老手解答,谢谢。 singleton的锁是为了防止竞争。在同一时刻下两个线程对单件的调用。锁分为好几种。
具体参阅http://blog.csdn.net/appstudy/archive/2009/06/12/4264383.aspx 这是一个经典的double lock的单体。 明白了,谢谢解答。
页:
[1]