kongkong
首页
归档
分类
标签
关于
IO复用——epoll内核源代码剖析
* 最近拖延症又犯了。。。嗯。。。废话不多说。。。直接上硬货。。。→_→ * 比较select系统调用请戳传送门——select内核源代码剖析 了解poll机制请戳传送门——poll机制内核源代码剖析 epoll_create 这是Linux_3.0.12内核版本。。。和之前剖析的2.4.0内核版本的系统调用有一些差别。。。所以直接进SYSCALL_DEFINE1。。。 //为每一个监听的事件
2020-07-02
Linux
Kernel
什么是POD数据类型?
* 在之前的vector扩容问题源代码剖析中,发现源码中对数据类型进行了是否为POD类型的检查,这篇就看看什么是POD。。。→_→ * 了解vector扩容问题请戳传送门——vector扩容问题源代码剖析 详细POD定义说明请戳传送门——POD数据类型解释说明 详细is_pod函数定义说明请戳传送门——is_pod函数定义说明 POD,是Plain Old Data的缩写,普通旧数据类型,是C+
2020-07-02
Language
C++
vector扩容问题源代码剖析
* 之前只知道理论。。。今天就来深入剖析一下源代码。。。→_→ * 了解POD数据类型请戳传送门——什么是POD数据类型? 直接从vector的push_back进。。。 //stl\Stl_vector.h //尾插 void push_back(const _Tp& __x) { //先检查是否还有备用空间 if (_M_finish != _M_end_of_s
2020-07-02
Language
C++
IO复用——poll机制内核源代码剖析
* select内核源代码已经剖析了,但是有个问题还没有解决。。。面对每一种文件描述符如何进行查询?这就和poll机制有关了。。。这篇就来看看poll机制内核源代码。。。→_→ * 了解select底层实现请戳传送门——IO复用——select内核源代码剖析 每一个进程都会有一个与之对应的files_struct结构,files_struct结构中存储着该进程打开的文件的集合 struct fil
2020-07-02
Linux
Kernel
IO复用——select函数应用实例
* 趁着刚刚总结完select的内核源码。。。现在就来应用一下。。。→_→ * 深入理解select底层原理请戳传送门——IO复用——select内核源代码剖析 本次网络通信socket套接字是基于TCP协议的可靠传输,因为只开了一台虚拟机。。。所以服务器IP地址采用回环地址——127.0.0.1,服务器端口号port为6000 server #include <stdio.h> #i
2020-07-02
Linux
Kernel
【转】C++11标准新特性:右值引用与转移语义
* 碰巧看到这篇文章。。。学习了。。。→_→ * 原文链接请戳传送门:C++11标准新特性:右值引用与转移语义 新特性的目的 右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它实现了转移语义 (Move Sementics) 和精确传递 (Perfect Forwarding)。 它的主要目的有两个方面 消
2020-07-01
Language
C++
IO复用——select内核源代码剖析
* 在高并发编程中,多次使用IO复用select函数,本篇就来深入剖析一下其内核源码。。。→_→ * 了解poll机制底层原理请戳传送门——IO复用——poll机制内核源代码分析 了解select应用实例请戳传送门——IO复用——select函数应用实例 < – 2017-08-11 23:40 – >还有一部分代码没贴。。。明天把select这个硬骨头啃下来。。。 < – 20
2020-07-01
Linux
Kernel
Nginx中的负载均衡
* 快马加鞭。。。再看看Nginx中的负载均衡是如何实现的。。。轮询。。。?一致性哈希。。。?→_→ * 在Nginx中每一个worker进程都有一个自己的ngx_accept_disabled,它就是实现负载均衡机制的关键阈值 ngx_int_t ngx_accept_disabled;//整形 在Nginx启动时,初始化ngx_accept_disabled为一个负数,其值为连接总数的7
2020-07-01
Linux
Kernel
Nginx中的惊群现象解决方法
* 什么是惊群现象?Nginx中用了什么方法来避免这种问题的发生?本篇就解决这两个问题。。。→_→ * 惊群现象的定义与危害 在Nginx中,每一个worker进程都是由master进程fork出来的。master进程创建socket后进行listen、bind操作,fork出来的worker继承了socket,调用accpet开始监听等待网络连接 如果这时有多个worker进程都在等待事件
2020-07-01
Linux
Kernel
Linux内核中的互斥操作(3)——读写锁
* 对内核中的信号量和自旋锁经过源码剖析后,再来看最后一个内核中的互斥操作——读写锁。。。→_→ * 初始化读写锁 读写锁的类型定义 typedef struct { //不调试时,读写锁实际上就是一个无符号整形。通过下面的代码还可以看出其实质就是一个计数器 volatile unsigned int lock; #if SPINLOCK_DEBUG unsigned magi
2020-07-01
Linux
Kernel
1
2
3
4
5
…
12
搜索
×
关键词