StudyOfMuduo
个人学习记录muduo库
神秘的火柴人
学习不是短时间的冲刺,而是有节制的坚持:)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Net——EventLoopThread类
文章目录1. 作用2.成员变量3.测试用例 Reactor_test06.cc 1. 作用 创建了一个线程,并线程函数中创建了一个EventLoop对象 2.成员变量 3.测试用例 Reactor_test06.cc include <muduo/net/EventLoop.h> #include <muduo/net/EventLoopThread.h> #in...原创 2019-06-08 16:12:59 · 223 阅读 · 0 评论 -
Net——EventLoop类(三)、Timer类、TimerId类、TimerQueue类
timestamp相当于整数,保存在寄存器当中,而非堆栈当中原创 2019-05-25 13:01:28 · 321 阅读 · 0 评论 -
Net——让EventLoop处理定时器事件
timerfd_create() CLOCK_MONOTONIC:如果人为将系统时间向后调整,不会触发定时器原创 2019-05-22 22:58:22 · 420 阅读 · 0 评论 -
Net——EventLoop类(二)、Channel类、Poller类、PollPoller类
Channel的update()会调用EventLoop的updateChannel(),会调用Poller的updateChannel() 一个EventLoop包含多个Channel Acceptor是被动连接的抽象 Connector是主动连接的抽象 ////Channel类 ...原创 2019-05-17 23:31:07 · 432 阅读 · 0 评论 -
Net——EventLoop类(一)
1. 简化版EventLoop EventLoop.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 · 343 阅读 · 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 · 330 阅读 · 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 · 530 阅读 · 0 评论 -
Base——ThreadPool类
1.线程池结 2.成员变量 cond_:通知线程队列中的线程来取任务 threads_:线程队列,里面存放的是muduo::Thread queue_:任务队列 running_:此线程池是否工作 muduo新版中添加了一些变量,但实现的基本功能没变 3.测试用例 ThreadPool_test.cc 以muduo-0.9.1版本为例: #include <muduo/...原创 2019-05-05 20:59:38 · 398 阅读 · 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 · 380 阅读 · 0 评论 -
Base——Condition类、CountDownLatch类
1.成员变量 Condition类 mutex_为引用,该类并不管理该成员变量的生命周期 CountDownLatch类 mutable关键字: 知乎 mutable意思是“这个成员变量不算对象内部状态”。比如,你搞了个变量,用来统计某个对象的访问次数(比如供debug用)。它变成什么显然并不影响对象功用,但编译器并不知道:它仍然会阻止一个声明为const的函数修改这个变量。把这...原创 2019-05-05 11:12:27 · 544 阅读 · 0 评论 -
Base——MutexLock类、MutexLockGuard类
1.基类 2.成员变量 MutexLock类: holder_:拥有此互斥体变量的线程 tid MutexLockGuard类: 只是为mutex_的引用,这两个类为关联关系 3. MutexLock mutex; void foo() { mutex.lock(); 。。。 if() { //mutex.unlock(); return ; } mu...原创 2019-05-05 11:12:01 · 511 阅读 · 0 评论 -
Base——Thread类
1.基类 2.成员变量 started_:线程是否运行 pthreadId_:线程id tid_:线程真实ID func_:线程函数 name_:线程名字 numCreated_:线程数(原子类型,参看Atomic_unittest类) 3.__thread muduo-0.9.1版本: __thread修饰的变量属于线程自己内部的局部变量 注 muduo新版在 Curren...原创 2019-05-05 11:11:27 · 641 阅读 · 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 · 389 阅读 · 0 评论 -
Base——Atomic_unittest类
1.基类 如何让一个类无法拷贝? 将拷贝构造函数、赋值操作符设为私有 2.一些原子类操作 3.volatile 成员函数: 作用:要使用volatile声明的变量的值时,系统总是从内存中读取数据,而不是使用保存在寄存器中的备份。防止编译器对代码进行优化。 4. 测试用例 Atomic_unittest.cc 参考代码 ...原创 2019-05-05 11:10:12 · 201 阅读 · 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 · 257 阅读 · 0 评论
分享