摘要: # 一、知识点 ## 1. std::bidirectional_iterator_tag `std::bidirectional_iterator_tag` 是 C++ 标准库中定义的一个迭代器类型标签,用于标识支持双向遍历的迭代器类型。 在 C++ 中,迭代器是一种泛型指针,用于遍历容器中的元素 阅读全文
posted @ 2023-06-20 17:57 曹剑雨 阅读(40) 评论(0) 推荐(0) 编辑
摘要: # Linux内核源码编译过程 **总体流程:** 1. 下载Linux内核源码文件 2. 安装所需工具 3. 解压源码文件并配置 4. make编译源码 5. 下载busybox 6. 配置busybox并编译 ## 1. Linux源码编译 https://mirrors.edge.kernel 阅读全文
posted @ 2023-06-14 20:21 曹剑雨 阅读(190) 评论(0) 推荐(0) 编辑
摘要: ## 源码分析 Netty源码中调用链特别长,且涉及到线程切换等步骤,令人头大:) ### 1 启动剖析 ![](https://img2023.cnblogs.com/blog/3187783/202306/3187783-20230614201709012-2027464578.png) 我们就 阅读全文
posted @ 2023-06-14 20:19 曹剑雨 阅读(18) 评论(0) 推荐(0) 编辑
摘要: ### Netty实现简易RPC调用 总体流程: - 客户端发起rpc调用请求,封装好调用的接口名,函数名,返回类型,函数参数类型,函数参数值等属性,将消息发送给服务器。 - 服务器的handler解析rpc请求,调用对应方法,并将方法结果写回客户端。 - 客户端在**主线程**发送消息后,准备一个 阅读全文
posted @ 2023-06-14 20:16 曹剑雨 阅读(19) 评论(0) 推荐(0) 编辑
摘要: # 三. Netty 进阶 ## 1. 粘包与半包 ### 1.1 粘包现象 服务端代码 ```java public class HelloWorldServer { static final Logger log = LoggerFactory.getLogger(HelloWorldServe 阅读全文
posted @ 2023-06-07 20:03 曹剑雨 阅读(14) 评论(0) 推荐(0) 编辑
摘要: # 二. Netty 入门 ## 1. 概述 ### 1.1 Netty 是什么? ``` Netty is an asynchronous event-driven network application framework for rapid development of maintainabl 阅读全文
posted @ 2023-06-07 19:58 曹剑雨 阅读(13) 评论(0) 推荐(0) 编辑
摘要: # 一. NIO 基础 non-blocking io 非阻塞 IO ## 1. 三大组件 ### 1.1 Channel & Buffer channel 有一点类似于 stream,它就是读写数据的**双向通道**,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据 阅读全文
posted @ 2023-06-07 15:17 曹剑雨 阅读(20) 评论(0) 推荐(0) 编辑
摘要: # 1. Netty总体结构 ## 1.1 Netty简介 ​ Netty是一款用于创建高性能网络应用程序的高级框架。它的基于 Java NIO 的异步的和事件驱动的实现,保证了高负载下应用程序性能的最大化和可伸缩性。 ​ 其次,Netty 也包含了一组**设计模式**,将应用程序逻辑从网络层解耦, 阅读全文
posted @ 2023-05-31 17:36 曹剑雨 阅读(161) 评论(0) 推荐(0) 编辑
摘要: # 1. 项目总体流程: - 事件处理模式:采用Epoll边沿触发的IO多路复用技术,模拟Proactor模式; - 主线程使用epoll监听与客户端连接的socket,并在主线程中对这些socket执行数据读写; - 读出数据后将数据放入请求队列,交给工作线程(子线程)处理业务逻辑; - 子线程解 阅读全文
posted @ 2023-05-24 21:26 曹剑雨 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 3. 线程的同步与互斥 为什么需要同步与互斥 ​ 一个进程运行时,数据存储在内存中。如果一个数据要进行运算,必须先将数据拷贝到寄存器中。比如要对栈上的一个int i进行“++”操作,需要将i的值拷贝到寄存器中,将该值自加后再拷贝到原来的内存。 ​ 如果此时有两个线程均进行的是这样的操作,可能出现两个 阅读全文
posted @ 2023-05-17 21:11 曹剑雨 阅读(80) 评论(0) 推荐(0) 编辑