![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
Ideal Dragon
没有什么好运气,只能一直保持努力。
展开
-
poll机制源码深入剖析
poll机制源码深入剖析文章目录poll机制源码深入剖析poll调用方法poll实现原理poll源码实现应用程序调用poll函数do_sys_poll复制用户区数据构建监听结构链表-->调用do_poll-->数据返回do_poll遍历链表对每个调用do_pollfd-->睡眠-->有事件或者超时-->返回do_pollfd找到文件结构-->调用文件驱动的po...原创 2019-11-16 17:57:03 · 379 阅读 · 1 评论 -
epoll机制源码分析
epoll机制源码分析文章目录epoll机制源码分析epoll 调用方法epoll实现原理源码分析关键结构思考题epoll 调用方法// 调用epoll_create建立一个epoll对象(在epoll文件系统中给这个句柄分配资源);//参数:监听的最大fd数目 返回值:epollfdint epoll_create(int size); //添加、删除、更改操作//参数:ep...原创 2019-11-16 17:55:41 · 199 阅读 · 0 评论 -
多线程锁的分析
多线程锁的分析首先我们知道锁主要有两种,悲观锁和乐观锁。对于悲观锁(mutex,spin_lock),它永远会假定最糟糕的情况,就像我们上面说到的互斥机制,每次我们都假定会有其他的线程和我们竞争资源,因此必须要先拿到锁,之后才放心的进行我们的操作,这就使得争夺锁成为了我们每次操作的第一步。乐观锁(CAS,原子操作)则不同,乐观锁假定在很多情况下,资源都不需要竞争,因此可以直接进行读写,但是如果碰...原创 2019-11-16 17:52:15 · 391 阅读 · 0 评论 -
单例模式c++实现
单例模式文章目录单例模式基本知识饿汉单例的实现版本一:双检查锁,由于内存读写的乱序导致不安全版本二:C++11的跨平台实现版本三:pthread_once函数实现版本四:C++11的最简洁跨平台实现用模板包装单例饿汉与懒汉的比较基本知识单例模式的学习在多次中遇到,包括但不限于:侯捷:明确拒绝编译器合成构造函数 muduo:Singleton类 flydragon:Config类 因此在这里...原创 2019-11-16 17:37:55 · 227 阅读 · 0 评论 -
复合、委托(关联)、继承
面向对象的三种类关系面向对象的主要三种关系,分别是复合,委托,继承,这里的委托在某些地方可能叫联合之类的。本内容是根据侯捷的C++面向对象设计的视频总结的。复合composition在这个例子中,queue类中包含了deque类,并且开放了部分的deque的接口,这种一个类里面完整的包含了某个类的关系叫做复合。同时该种关系的类图也已经在图上呈现,是一个黑色实心的菱形。deque的生命周期也...原创 2019-05-25 00:01:42 · 747 阅读 · 0 评论 -
静态内存分配与动态内存分配
静态内存分配与动态内存分配动机平时看c/c++的书籍时,总会看到一种观点,说是C/C++语言使用的时候动态内存分配是最重要的,使用malloc等函数分配的内存必须要释放,否则及其容易出现内存泄露。但是自己有时候挺奇怪的,啥时候的内存要自己释放,啥时候的内存是编译器释放呢?内存模型这是csapp上面的linux进程内存分布图,从图中最下面往上看,只读段和读写段,在代码编译结束的时候就已经固...原创 2019-05-25 14:05:02 · 6112 阅读 · 1 评论