singleton

实现的时候需要加入static的初始化方法,但是在c++0x之前的版本 static的方法并不是线程安全的。在c++11的版本中static的方法是线程安全的。 REF 共同点: 有一个私有的无参构造函数,这可以防止其他类实例化它,而且单例类也不应该被继承,如果单例类允许继承那么每个子类都可以创建实例,这就违背了Singleton模式“唯一实例”的初衷。 单例类被定义为sealed,就像前面提到的该类不应该被继承,所以为了保险起见可以把该类定义成不允许派生,但没有要求一定要这样定义。 一个静态的变量用来保存单实例的引用。 一个公有的静态方法用来获取单实例的引用,如果实例为null即创建一个。 参考文献以及代码 LINK 如果对于一个类对象来实现的话 如果是定义为指针, »

chrod

wiki others blog 对于search的过程还是好理解的 对于加入或者删除一个节点才是复杂的地方。复杂性来自于finger table的更新。最重要的是,对每个节点q,当实体指向环中的下一个节点时,$FT_q[1]$ 是正确的, 即是后继者q+1. 为了达到这个目的,每个节点q定期地运行一个进程来与__succ(q+1)__ 联系,并请求返回__pred(succ(q+ »

Sockopt

[TOC] Sockopt TCP | 端口 | 协议 | 说明| |:-----|:------:|----:| |7|echo|把收到的数据报回送到发送方| |9|discard|丢弃收到的任何数据报| |11|users|活跃的用户| |13|daytime|返回日期和时间| |17|quote|返回日期的引用| |19|chargen| »

gcc警告

link link2 gcc警告 从上到下覆盖 变量(代码)级:指定某个变量警告 int a __attribute__ ((unused)); 指定该变量为"未使用的".即使这个变量没有被使用,编译时也会忽略则个警告输出. 文件级:在源代码文件中诊断(忽略/警告) 语法: #pragma GCC diagnostic [error|warning| »

caffe learn

[TOC] REFERENCE Caffe 预处理图像的leveldb构建 输入:一批图像和label (2和3) 输出:leveldb (4) 指令里包含如下信息: conver_imageset (构建leveldb的可运行程序) train/(此目录放处理的jpg或者其他格式的图像) label.txt (图像文件名及其label信息) 输出的leveldb文件夹的名字 CPU/GPU (指定是在cpu上还是在gpu上运行code) CNN网络配置文件 Imagenet_solver. »