11.Linux 高性能服务器编程 --- 定时器
1.Linux 3种定时方法1. socket 选项 SO_RCVTIMEO 和 SO_SNDTIMEO分别用来设置 socket 接收数据超时时间和发送数据超时时间。因此,这2个选项仅对数据的接收和发送相关的 socket 专用的系统调用有效。2. SIGALRM 信号1.基于升序链表的定时器2.处理非活动连接3. IO 复用系统调用的超时参数Linux 下的3组 IO 系统调用都带有超时参数,因此它们不仅能统一处理信号和IO事件,也能统一处理定时事件。但是由于IO复用函数系统调用可能在超时时间到期之前就返回(有IO事件发生),如果我们要利用它们来定时,就需要不断更新定时参数以反映剩余的时间。定时器通常至少包含2个成员:一个是超时时间(相对时间或者绝对时间)一个任务回调函数还可能包括回调函数需要的参数以及是否重启定时器等信息2.两种高效的管理定时器的容器:1.时间轮固定的频率调用心博函数 tick, 并以此检查到期的定时器,然后执行定时器上的回调函数。2.时间堆将所有定时器中超时时间最小的一个定时器的超时时间作为心博间隔。
11.1 socket 选项 SO_RCVTIMEO 和 SO_SNDTIMEO
11.2 SIGALRM 信号
11.3 IO复用系统调用的超时调用
11.4 高性能定时器
时间轮:
时间堆:
11.Linux 高性能服务器编程 --- 定时器相关推荐
- 《Linux高性能服务器编程》——导读
前 言 为什么要写这本书 目前国内计算机书籍的一个明显弊病就是内容宽泛而空洞.很多书籍长篇大论,恨不得囊括所有最新的技术,但连一个最基本的技术细节也无法解释清楚.有些书籍给读者展现的是网络上随处可见的 ...
- Linux高性能服务器编程——书籍阅读笔记
目录 前言 正文 第一章 1. 零拷贝函数 2. TCP/IP协议族 3. OSPF 4. ARP协议 5. RARP 6. ICMP协议 7. TCP协议 8. UDP协议 9. 封装 第四章 TC ...
- 《Linux高性能服务器编程》学习笔记
<Linux高性能服务器编程>学习笔记 Linux高性能服务器编程 TCP/IP协议族 TCP/IP协议族体系结构以及主要协议 数据链路层 网络层 传输层 应用层 封装 分用 测试网络 A ...
- Linux 高性能服务器编程——多线程编程
问题聚焦: 在简单地介绍线程的基本知识之后,主要讨论三个方面的内容: 1 创建线程和结束线程: 2 读取和设置线程属性: 3 线程同步方式:POSIX信号量,互斥锁和条 ...
- 【Todo】【读书笔记】Linux高性能服务器编程
在读 /Users/baidu/Documents/Data/Interview/服务器-检索端/<Linux高性能服务器编程.pdf> 其实之前读过,要面试了,需要温习. P260 So ...
- linux高性能服务器编程书本总结
目录 目录分析 第一篇从 1-4章节主要是介绍 计算机网络基础知识和 TCP/IP模型 第二篇 核心篇 5 章到 15 章节 5-6章节 主要介绍 套接字编程API的使用和介绍 7章 是linux 服 ...
- linux高性能服务器编程第八章(高性能服务器程序框架)
C/S模型 传统C/S,一端作为客户端,一端作为服务器,这里不做多介绍. P2P模型 peer 2 peer ,每台机器使用服务的同时也提供服务,通俗的讲,没有绝对客户端和服务端的概念,当下云计算的模 ...
- 强推Linux高性能服务器编程, 真的是后端开发技术提升, 沉淀自身不容错过的一本经典书籍
目录 第1章 TCP/IP协议 1.1 TCP/IP协议族体系结构以及主要协议 1.1.1 数据链路层 1.1.2 网络层 1.1.3 传输层 1.1.4 应用层 1.2 封装 1.3 分用 1.5 ...
- linux高性能服务器编程学习总结(二)
第三章 TCP详解 TCP的连接是一对一的,所以基于多播和广播的应用程序不能使用TCP服务,而UDP非常适合广播和多播.发送端应用连续执行多次写操作,TCP模块将数据放入TCP缓冲区.TRP模块真正开 ...
- Linux高性能服务器编程 第5章 Linux网络编程基础API
5.1 socket 地址 API 现代CPU的累加器一次都能装载(至少)4 字节(这里考虑32位机,下同),即一个整 数.那么这4 字节在内存中排列的顺序将影响它被累加器装载成的整数的值.这就是字节 ...
最新文章
- 14岁初中生3天制成勒索病毒 制作方法或自学而成
- mysql每秒最多能插入多少条数据 ? 死磕性能压测
- Apache Superset从入门到放弃(基于python3.6.9)
- django的admin管理后台到底是否靠谱呢
- C# 中的 ConfigurationManager类引用方法
- 32汇编语言程序说明_Linux 汇编语言学习--编译和链接
- 自动摘要php,phpcms修改手动摘要255字符、自动摘要200字符及取消自动摘要
- vue取通过key取value_如何通过获取map中的key来获得与key对应的value值,进行运算...
- centos6.8 安装php7
- micropython做产品开发_关于MicroPython是否可以真正用在产品开发的讨论
- linux 时间怎么求差值_linux 时间戳及时间差计算
- matlab 平行,MATLAB判断两条直线平行
- 第四季-专题17-LCD驱动程序设计
- 使用RDP报表工具实现多级表头动态列
- MySQL下载安装新手教程
- 利用栈来完成表达式求值
- window media player 内部应用程序出错
- Hibernate 映射关系 ---One2One 主键关联
- 面向万物智联的云原生网络
- 【MATLAB】命令行窗口乱码问题