- 博客(9)
- 收藏
- 关注
转载 C++ 虚函数表解析
原文:《C++虚函数表解析》前言 C++中的虚函数的作用主要是实现了多态的机制。 关于多态,简而言之就是用父类型的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。
2016-08-30 19:37:12 1508 2
原创 协程(三) 腾讯libco源码分析
腾讯的libco使用了hook技术,做到了在遇到阻塞IO时自动切换协程,(由事件循环co_eventloop检测的)阻塞IO完成时恢复协程,简化异步回调为相对同步方式的功能。其没有使用显示的调度器来管理所有协程(保存协程的相关数据),在协程切换及恢复之间主要依靠epoll_event.data.ptr来传递恢复协程所需的数据
2016-08-30 15:47:23 8194 1
原创 协程(二) 云风coroutine源码分析
云风的coroutine代码量少、简洁,非常适合用来入门协程。从中我们可以学习到协程的设计思路,例如控制权的传递、调度器的设计、协程栈的使用等概念。
2016-08-29 17:54:19 4007
原创 协程(一)快速理解协程的定义和分类
协程的概念很早以前就被提出,很多语言也实现了协程,例如Erlang,Lua。不过我首次接触协程是在学习golang的过程中,当真正使用协程的时候就被它的优雅和高效所折服,这也埋下了自己对协程好奇的种子。随着接触许多C++协程库,例如云风的coroutine、腾讯的libco、魅族的libgo等,很多当时模糊的概念也逐渐清晰。
2016-08-19 15:22:18 8163
原创 C++11内存模型详解
C++内存模型可以被看作是C++程序和计算机系统(包括编译器,多核CPU等可能对程序进行乱序优化的软硬件)之间的契约,它规定了多个线程访问同一个内存地址时的语义,以及某个线程对内存地址的更新何时能被其它线程看见.
2016-08-15 10:28:29 7085
原创 TCP中的7种定时器详解
TCP中的7种定时器:建立连接定时器、重传定时器、延迟应答定时器、坚持定时器、FIN_WAIT_2定时器、TIME_WAIT定时器
2016-08-01 15:54:47 7257 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人