![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
从轮子造起——一个muduo库的实现
我的muduo实现与源码研究
偶成ZG
这个作者很懒,什么都没留下…
展开
-
6.base之CountDownLatch实现
闭锁概念闭锁是一种同步工具类,可以延迟线程的进度直到其到达终止状态在闭锁到达结束状态之前,没有任何线程能通过当到达结束状态时,允许所有的线程通过当闭锁到达结束状态后,将不会再改变状态,因此将永远保持打开状态闭锁可以用来确保某些活动直到其他活动都完成后才继续执行CountDownLatch类作用CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的原创 2021-01-06 04:55:50 · 248 阅读 · 0 评论 -
5.base之Atomic.h的实现
AtomicIntegerT类实现整型上的原子操作类的接口初始化值(构造函数):AtomicIntegerT()返回当前值:get()增加值并返回增加前的值:getAndAdd()增加值并返回增加后的值:addAndGet()递增值并返回递增前的值:incrementAndGet()递减值并返回递减前的值:incrementAndGet()增加值:add()递增值:increment()递减值:decrement()设置并加锁值,返回设置前的值:getAndSet()###类的数原创 2021-01-06 04:14:26 · 280 阅读 · 0 评论 -
4.base之Types的实现
Types在命名空间中引入了std::string添加两个内联函数implicit_cast和down_cast实现了memZero实现inline void memZero(void *p, size_t n) { memset(p, 0, n);}template<typename To, typename From>inline To implicit_cast(From const& f) { return f;}template&原创 2021-01-06 04:13:04 · 213 阅读 · 0 评论 -
3.base之同步原语Condition类的实现
Condition类Condition类是对条件变量condition的抽象条件变量使我们可以睡眠等待某种条件出现条件变量是利用线程间共享的全局变量进行同步的一种机制主要包括两个动作一个线程等待"条件变量的条件成立"而挂起另一个线程使"条件成立"(给出条件成立信号)为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起类的实现类的接口初始化条件变量(构造函数):Condition()销毁条件变量(析构函数):~Condition()等待某条件:wait()通知某条件变原创 2021-01-06 04:11:41 · 176 阅读 · 0 评论 -
2.base之同步原语Mutex的实现
Mutex.hMutexLock类:对底层互斥锁mutex进行管理MutexLockGuard类:对MutexLock类对象加锁解锁头文件noncopyable.hCurrentThread.h,用来标识线程assert.h,实现断言pthread.h,线程支持MutexLock类在多线程编程中,为了保护共享资源,需要锁机制MutexLock用MutexLockGuard对象进行管理,能够安全地进出每个线程的临界区类的实现成员变量锁(互斥量):pthread_mutex_t原创 2021-01-06 04:04:26 · 209 阅读 · 0 评论 -
1.base之noncopyable和copyable类
noncopyable设计类的目的?noncopyable保证了派生类的使用者无法拷贝构造或者赋值该对象保证了类可以调用,但是外面的类不能调用,那么当子类需要定义构造函数的时候不至于通不过编译在子类没有定义的情况下,外面的调用者是不能够通过赋值和copy构造等手段来产生一个新的子类对象的类的接口删除了拷贝构造函数和拷贝赋值函数将默认构造和析构函数设为protected类的实现class noncopyable{public: noncopyable(const noncopy原创 2021-01-06 04:01:20 · 310 阅读 · 0 评论