摘要:
Atomic 在 Atomic.h 文件中定义了原子操作类类型 AtomicIntegerT<T>,它使用了 GCC 内置的原子操作来实现。 原子操作在多线程开发中经常用到,比如计数器、序列产生器等。这些情况下数据有并发的危险,但是用锁去保护又显得有些浪费,会造成一定的性能瓶颈,而原子操作则更为节省 阅读全文
摘要:
WeakCallback 在 WeakCallback.h 文件中定义了模板类 WeakCallback,在其模板参数中,有一个可变模板参数 ARGS,用以指示回调函数的参数。 在类内部,定义有两个成员变量,分别是 object_ 和 function_。 成员变量 object_ 是一个弱指针类型 阅读全文
摘要:
ProcessInfo 在 ProcessInfo.h 文件中,存在一个命名空间 ProcessInfo,其中声明了大部分进程需要使用到相关信息的函数,比如进程的 PID、UID、EUID,主机名,进程状态,程状态等等。 在 ProcessInfo.cc 的 detail 命名空间定义了如下几个函数 阅读全文
摘要:
StringPiece 在 StringPiece.h 文件中,声明了两个类类型,一个是 StringArg,另一个是 StringPiece,前者用于在传递函数参数时同时兼容 C 风格的字符串(const char*)和 C++ 风格的字符串(std::string)。而后者则可用于构建同时兼任这 阅读全文
摘要:
CurrentThread 在 CurrentThread 命名空间中实现了有关线程 id 的管理和优化。其主要用于获取当前线程的 id,并将线程 id 保存为 C 语言风格的字符串: extern __thread int t_cachedTid; // 线程id extern __thread 阅读全文