
StudyOfMuduo
个人学习记录muduo库
神秘的火柴人
学习不是短时间的冲刺,而是有节制的坚持:)
展开
-
Net——EventLoopThread类
文章目录1. 作用2.成员变量3.测试用例 Reactor_test06.cc1. 作用创建了一个线程,并线程函数中创建了一个EventLoop对象2.成员变量3.测试用例 Reactor_test06.ccinclude <muduo/net/EventLoop.h>#include <muduo/net/EventLoopThread.h>#in...原创 2019-06-08 16:12:59 · 165 阅读 · 0 评论 -
Net——EventLoop类(三)、Timer类、TimerId类、TimerQueue类
timestamp相当于整数,保存在寄存器当中,而非堆栈当中原创 2019-05-25 13:01:28 · 253 阅读 · 0 评论 -
Net——让EventLoop处理定时器事件
timerfd_create()CLOCK_MONOTONIC:如果人为将系统时间向后调整,不会触发定时器原创 2019-05-22 22:58:22 · 354 阅读 · 0 评论 -
Net——EventLoop类(二)、Channel类、Poller类、PollPoller类
Channel的update()会调用EventLoop的updateChannel(),会调用Poller的updateChannel()一个EventLoop包含多个ChannelAcceptor是被动连接的抽象Connector是主动连接的抽象////Channel类...原创 2019-05-17 23:31:07 · 355 阅读 · 0 评论 -
Net——EventLoop类(一)
1. 简化版EventLoopEventLoop.h#ifndef MUDUO_NET_EVENTLOOP_H#define MUDUO_NET_EVENTLOOP_H#include <boost/noncopyable.hpp>#include <muduo/base/CurrentThread.h>#include <muduo/bas...原创 2019-05-17 22:03:28 · 285 阅读 · 0 评论 -
Base——ThreadLocal类
1.线程特定数据(Thread-specific Data,TSD)在Thread类.中通过 __thread 来标示属于线程自己内部数据,但只能适用于POD类型数据,对于其它类型的变量利用POSIX线程库所提供的方法。int pthread_key_create(pthread_key_t *key, void (*destructor)(void*));线程退出时,调用 destr...原创 2019-05-07 09:31:13 · 294 阅读 · 0 评论 -
Base——Singleton类
1.一个公有函数instance(),其余为私有pthread_once():int pthread_once(pthread_once_t *once_control, void (*init_routine)(void)); 保证init_routine指向的函数只执行一次init()函数定义如下:atexit(...原创 2019-05-05 22:33:11 · 471 阅读 · 0 评论 -
Base——ThreadPool类
1.线程池结2.成员变量cond_:通知线程队列中的线程来取任务threads_:线程队列,里面存放的是muduo::Threadqueue_:任务队列running_:此线程池是否工作muduo新版中添加了一些变量,但实现的基本功能没变3.测试用例 ThreadPool_test.cc以muduo-0.9.1版本为例:#include <muduo/...原创 2019-05-05 20:59:38 · 350 阅读 · 0 评论 -
Base——BlockingQueue类、BoundedBlockingQueue类
1.成员变量BlockingQueue:无界缓冲区BoundedBlockingQueue:有界缓冲区queue_:循环队列2.生产者、消费者模型利用信号量实现伪码://生产者p(semFull) //查看队列是否有空间 lock(mutex) queue.push(物品) unlock(mutex)v(semEmpty) //通知消费者有物品//...原创 2019-05-05 11:12:51 · 310 阅读 · 0 评论 -
Base——Condition类、CountDownLatch类
1.成员变量Condition类mutex_为引用,该类并不管理该成员变量的生命周期CountDownLatch类mutable关键字:知乎mutable意思是“这个成员变量不算对象内部状态”。比如,你搞了个变量,用来统计某个对象的访问次数(比如供debug用)。它变成什么显然并不影响对象功用,但编译器并不知道:它仍然会阻止一个声明为const的函数修改这个变量。把这...原创 2019-05-05 11:12:27 · 466 阅读 · 0 评论 -
Base——MutexLock类、MutexLockGuard类
1.基类2.成员变量MutexLock类:holder_:拥有此互斥体变量的线程 tidMutexLockGuard类:只是为mutex_的引用,这两个类为关联关系3.MutexLock mutex;void foo(){ mutex.lock(); 。。。 if() { //mutex.unlock(); return ; } mu...原创 2019-05-05 11:12:01 · 454 阅读 · 0 评论 -
Base——Thread类
1.基类2.成员变量started_:线程是否运行pthreadId_:线程idtid_:线程真实IDfunc_:线程函数name_:线程名字numCreated_:线程数(原子类型,参看Atomic_unittest类)3.__threadmuduo-0.9.1版本:__thread修饰的变量属于线程自己内部的局部变量注muduo新版在 Curren...原创 2019-05-05 11:11:27 · 583 阅读 · 0 评论 -
Base——Exception类
1. 基类2.const throw()stackoverflow:const means that this function (which is a member function) will not change the observable state of the object it is called on. The compiler enforces this by n...原创 2019-05-05 11:10:47 · 332 阅读 · 0 评论 -
Base——Atomic_unittest类
1.基类如何让一个类无法拷贝?将拷贝构造函数、赋值操作符设为私有2.一些原子类操作3.volatile成员函数:作用:要使用volatile声明的变量的值时,系统总是从内存中读取数据,而不是使用保存在寄存器中的备份。防止编译器对代码进行优化。4. 测试用例 Atomic_unittest.cc参考代码...原创 2019-05-05 11:10:12 · 152 阅读 · 0 评论 -
Base——Timestamp类
1.基类copyable类:空基类boost::less_than_comparable<Timestamp>:类中只需实现operator<(),就可以自动实现operator>(),operator >=(),operator <=()2.成员函数距离1970-01-01 00:00:00(查看:man 2 time)的时间3.编...原创 2019-05-05 11:09:08 · 215 阅读 · 0 评论