Linux内核提供了一系列基本的API操作,包括时间,文件,线程等;但直接使用费时费力,在学习了陈硕大神的muduo库后,发现其内部已经做好了一些封装,使用了一些技巧,包括RAII手法。
该库的第一版本,先借鉴muduo_base的代码,后面再添加其他功能。欢迎star
Linux多线程编程工具库github: https://github.com/Dwyane05/liblmp_tool
构造noncopyable, 可参考boost/noncopyable.hpp
//noncopyable.h
namespace lmp_tool
{
class noncopyable
{
public:
noncopyable(const noncopyable&) = delete;
void operator=(const noncopyable&) = delete;
protected:
noncopyable() = default;
~noncopyable() = default;
};
} // namespace lmp_tool
noncopyale的对象不能赋值操作。
使用__sync_fetch_and_add 系列函数构造原子操作;
//Atomic.h
#include "noncopyable.h"
#include <stdint.h>