Likes的博客

终日而思不如须臾之所学也

彻底搞定模板类型推导

总体分为三种情况: ParamType是一个指针或引用,但不是万能引用,形如: template<typename T> void f(T& param); //T& ParamType是万能引用,形如: template&...

2019-05-15 16:50:12

阅读数 43

评论数 0

TCP 的那些事儿

目录 TCP 的那些事儿(上) TCP头格式 TCP的状态机 数据传输中的Sequence Number TCP重传机制 快速重传机制 SACK 方法 TCP 的那些事儿(下) TCP的RTT算法 经典算法 Karn / Partridge 算法 Jacobson / ...

2019-05-14 16:21:13

阅读数 26

评论数 0

免锁循环队列的实现(翻译)

原文:https://www.codeproject.com/Articles/153898/Yet-another-implementation-of-a-lock-free-circular 实例代码:https://download.csdn.net/download/songchuwan...

2019-05-14 10:39:46

阅读数 82

评论数 0

无锁队列

https://www.cnblogs.com/alantu2018/p/8469168.html 本文总体是转载的,但是更正了部分错误、增添了批注 目录 1、前言 2、队列操作模型 3、队列数据定长与变长 4、并发无锁处理 5、无锁队列的实现 6、CAS的ABA问题 7、用数组...

2019-05-13 16:56:26

阅读数 29

评论数 0

ptmalloc的实现细节

如果对ptmalloc的基本设计还不熟悉,请先看:https://blog.csdn.net/songchuwang1868/article/details/89951543 一、bin数组 bin数组大体分成三个部分: 1、unsored bin数组 暂存一些没有排序的数据 uns...

2019-05-12 19:52:04

阅读数 30

评论数 0

多线程内存布局

关键在于区分与进程的内存布局。 1、由一个栈切分出多个栈分配给不同的线程 2、共用一份代码,但是各个线程的pc(指令寄存器)指向的代码不同

2019-05-12 18:52:54

阅读数 33

评论数 0

C++虚函数的实现

http://blog.kongfy.com/2015/08/探索c虚函数在g中的实现/?utm_source=tuicool&utm_medium=referral https://blog.csdn.net/haoel/article/details/1948051 目录 ...

2019-05-09 16:41:17

阅读数 108

评论数 0

一篇文章彻底讲懂malloc的实现(ptmalloc)

https://blog.csdn.net/z_ryan/article/details/79950737 https://blog.csdn.net/phenics/article/details/777053 实现细节请看:https://blog.csdn.net/songchuwang...

2019-05-08 14:40:51

阅读数 33

评论数 0

B树、B-树、B+树、B*树之间的关系

B树 B-tree树即B树,B即Balanced,平衡的意思。因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,其实,这是个非常不好的直译,很容易让人产生误解。如人们可能会以为B-树是一种树,而B树又是另一种树。而事实上是,B-tree就是指的B树(常有人说B减树,这...

2019-05-06 11:20:29

阅读数 44

评论数 0

Epoll的本质(内部实现原理)

本文主体转自https://zhuanlan.zhihu.com/p/63179839,加上了自己的理解和批注 从事服务端开发,少不了要接触网络编程。epoll作为linux下高性能网络服务器的必备技术至关重要,nginx、redis、skynet和大部分游戏服务器都使用到这一多路复用技术。 ...

2019-05-06 11:11:26

阅读数 366

评论数 1

文件描述符file descriptor与inode的相关知识

https://blog.csdn.net/jnu_simba/article/details/8806654 每个进程在Linux内核中都有一个task_struct结构体来维护进程相关的 信息,称为进程描述符(Process Descriptor),而在操作系统理论中称为进程控制块 (PCB...

2019-04-27 09:33:03

阅读数 35

评论数 0

成员函数模板不能为虚函数

https://blog.csdn.net/qaz2549066580/article/details/43988169 #include<iostream> #include<typeinfo> using namespace std;...

2019-04-24 10:23:07

阅读数 40

评论数 0

C++对单例模式实现的总结(C++11超简化版!!!必看精髓)

目录 1、饿汉模式(一开始就初始化单例对象) 2、懒汉模式(需要的时候在实例化单例对象) 3、C++11简化版(必看精髓) 4、单例模板 1、饿汉模式(一开始就初始化单例对象) 优点:不用担心多线程问题。 缺点:可能在整个程序中就没有用到这个单例对象,造成浪费。 实现: cla...

2019-02-22 17:57:06

阅读数 135

评论数 0

深度辨析wait函数和信号机机制

我们都知道父进程通过wati系统调用等待子进程结束,处理僵死的子进程,但是其其内部机制到底如何?这篇博客将带你深度探索wait机制,并顺便解释了有关Linux信号的相关问题。 首先明确wait的作用:遍历所有子进程,处理一个处于僵死状态的子进程,如果没有僵死子进程,阻塞等待。如果根本就没有子进程...

2019-08-13 16:47:49

阅读数 6

评论数 0

超时重传三次后会发生什么?

TCP未收到发送报文的ACK,重传定时器超时后会进行重传,但重传不会一直持续下去,3次后依然不成功,直接发送RST关闭连接。 对面主机宕机,物理网线断开,会在IP成返回路由不可达的ICMP,TCP层直接重传,3次后RST ...

2019-08-08 11:38:38

阅读数 6

评论数 0

隔离级别、SI 和 SSI(四种隔离级别和快照隔离)

https://www.jianshu.com/p/c348f68fecde 本文是我对最近读的几篇论文的总结,没有太多引用原文,纯靠自己的理解和印象串联起来。主要是为日后深入了解相关知识做个简单“索引”。 本文描述得不是很严谨,也不保证完全正确,建议有兴趣的同学去阅读论文——根据论文名称搜索...

2019-07-29 11:23:19

阅读数 17

评论数 0

在构造函数中调用虚函数

#include <iostream> using namespace std; class A { public: A() { this->fun(); } virtual void fun() { cout <&lt...

2019-07-19 15:44:02

阅读数 12

评论数 0

信号

https://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html 一、信号及信号来源 信号本质 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一...

2019-07-16 10:24:30

阅读数 19

评论数 0

Linux下删除正在进行读写操作的文件

http://www.forthxu.com/blog/article/40.html 多进程环境下,打开同一个文件,进行读写操作过程中,如果其中一个进程删除这个文件,那么,另外正在读写这个文件会发生什么呢? 因为文件被删除了,正在读写的进程发生异常? 正在读写的进程仍然正常读写,好像没有发...

2019-07-15 17:41:49

阅读数 93

评论数 0

判断整数溢出

https://blog.csdn.net/bichenggui/article/details/4734040 c语言中存在两类整数算术运算,有符号运算和无符号运算。在无符号运算里,没有了符号位,所以是没有溢出的概念的。 所有的无符号运算都是以2的n次方为模。如果算术运算符的一个操作数是有符...

2019-07-15 16:21:11

阅读数 11

评论数 0

提示
确定要删除当前文章?
取消 删除