这段时间打算从ACE库转移到boost库上,遇到很多问题.
boost的singleton没有单独的库实现,在1.33.1版本发现了两处:
/usr/include/boost/thread/detail/singleton.hpp
/usr/include/boost/pool/detail/singleton.hpp
thread库里面的实现非常简单,采用函数里面static变量仅被初始化一次的特性,整个实现就两句话:
static singleton<T> s_oT;
return(s_oT);
这个就是网上说的2B青年的做法,缺陷啥的不多说了.
pool库的实现就比较复杂,思想是在main函数调用前,就先实例化,并解决多线程的问题,缺陷就是不能lazy了.