![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 84
一些学习笔记
Hooray310
这个作者很懒,什么都没留下…
展开
-
线程池的原理与实现
当遇到特别耗时的任务,影响其它线程的执行,需要在其他线程异步执行耗时的任务,进而平衡线程资源的开销与cpu核心,做到既能减少线程创建和销毁的开销,又能最大限度的提高 cpu 利用率。原创 2023-06-11 14:37:29 · 259 阅读 · 0 评论 -
redis主从同步与对象模型
当对key设置了过期时间,redis会把key带上过期时间存储到一个过期字典中,过期字典存储在residDB结构中,当我们查询一个 key 时,Redis 首先检查该 key 是否存在于过期字典中,是,则判断系统时间小于查询key的过期时间,如果小于则正常读。*优点:*由事件处理器自动执行 key 的删除操作。可以保证过期 key 会被尽快删除,定时删除对内存是最友好的。原创 2023-06-07 11:03:24 · 84 阅读 · 1 评论 -
网络编程中io职责及Redis、memcached、Nginx、如何处理reactor
在网络编程中,不论使用什么框架,我们都需要关注以下四个问题:连接建立、连接断开、消息到达、消息发送。网络io职责有操作io和检测io,我们将通过操作io这个过程去解答网络编程需要关注的问题。io的操作方式可见。原创 2022-10-23 22:05:13 · 611 阅读 · 0 评论 -
TCP三次握手与四次挥手
2.bind();3.listen();4.accept();5.recv();6.send();7.close();4.send();5.recv();6.close();在服务端各个API的作用:socket() 是文件系统分配的一个fd,并且置为tcb;bind()是为tcb绑定本地的ip和port;listen()是把tcb置为一个listen的状态;accpet()是从全连接队列取出一个节点分配一个fd;recv()就是从对应的fd拷贝出recvbuffer;原创 2022-10-23 22:04:40 · 474 阅读 · 0 评论 -
Ubuntu虚拟机编译netmap环境搭建
Netmap 是一个高性能收发原始数据包的框架,由 Luigi Rizzo 等人开发完成,其包含了内核模块以及用户态库函数。其目标是,不修改现有操作系统软件以及不需要特殊硬件支持,实现用户态和网卡之间数据包的高性能传递。其原理图如下,数据包不经过操作系统内核进行处理,用户空间程序收发数据包时,直接与网卡进行通信。原创 2022-10-23 22:03:44 · 713 阅读 · 0 评论 -
网络编程中网络IO与select、poll、epoll原理及使用
网络IO就是数据到达网卡后,网卡不能直接将数据送到程序内存,需要经过操作系统(kernel)中转保存到一个buffer中,应用程序调用操作系统的函数,从对应的buffer取出数据。原创 2022-09-11 18:53:04 · 276 阅读 · 0 评论 -
C语言实现红黑树,详解红黑树旋转,插入删除问题
c语言实现红黑树,对于红黑树旋转,插入删除问题进行梳理原创 2022-09-09 21:04:19 · 317 阅读 · 0 评论 -
从通讯录管理程序思考分层编程
代码分层思想是应用系统常见的一种架构模式,规范软件系统的逻辑结构,方便应用的可扩展性和可维护性。原创 2022-09-04 15:01:27 · 239 阅读 · 0 评论 -
DNS请求流程和报文解析
域名系统(英文: Domain Name System, 缩写: DNS)是互联网的一项服务,它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS)的作用是将人类可读的域名(如,www.example.com) 转换为机器可读的 IP 地址 (如,192.0.2.44)。原创 2022-09-04 13:36:47 · 4738 阅读 · 0 评论 -
从0搭建分布式管理之git
本文适合刚接触到git的朋友,在本地仓库(电脑磁盘)和远端仓库(Ubuntu虚拟机)进行学习理解分布式管理。原创 2022-09-03 14:38:04 · 211 阅读 · 0 评论