摘要: 在写这篇博客之前我查了很久发现全网都没有一篇写httpserver源码解析的 所以今天就由我来为大家解析一下httpserver的源码。(这里我会去掉其中的https部分的源码,只讲http部分,对httpserver中https的实现感兴趣的读者可以尝试自己去阅读,这部分并不复杂) 第一次在没有参 阅读全文
posted @ 2020-04-05 11:06 肥宅快乐码 阅读(1542) 评论(0) 推荐(2) 编辑
摘要: 深入理解NIO(四)—— epoll的实现原理 本文链接:https://www.cnblogs.com/fatmanhappycode/p/12362423.html 终于来到最后了,万里长征只差最后一步 ( `д´) ! 简单流程梳理 我们先从只监听一个socket开始讲起: 首先我们有一个程序 阅读全文
posted @ 2020-02-25 23:02 肥宅快乐码 阅读(4659) 评论(1) 推荐(7) 编辑
摘要: 题外话 好久没回博客园水博客了,上一次回来本来准备写点什么,不过那时候刚好博客园好像遇到了问题,也因为自己比较忙,就没写下去(全是懒的借口)。也希望博客园能早日恢复,越办越好。 回顾 写之前脑子里想了很多东西,真的开始落笔时脑子却一片乱糟糟的,只剩下各种碎碎念。 不过也没啥,反正也没什么人看,就当成 阅读全文
posted @ 2021-05-10 21:40 肥宅快乐码 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 首先是个人的一些阅读源码的小技巧,不一定适用每个人,可以直接跳过。 阅读源码的一些个人技巧 博客+总结 个人觉得大多数情况下跟着一篇优秀的博客配合着看就足够了,之后再自己写博客总结一遍加深印象,画一下流程图基本都能理顺。(图为学AQS时本人画的获取独占锁流程图) 类关系 配合idea看类之间的关系( 阅读全文
posted @ 2020-06-19 01:00 肥宅快乐码 阅读(1288) 评论(8) 推荐(7) 编辑
摘要: 从url到ip地址 dns解析 浏览器检查域名是否在缓存当中 如果缓存中没有,就去调用 gethostbyname 库函数进行查询。 gethostbyname 函数在试图进行DNS解析之前首先检查域名是否在本地 Hosts 里 没有缓存,也没有在 hosts 里找到,则将会向 DNS 服务器发送一 阅读全文
posted @ 2020-06-15 01:44 肥宅快乐码 阅读(442) 评论(0) 推荐(1) 编辑
摘要: redis为什么那么快?结论有三点,大家都知道,这里主要是分析。 首先第一点 redis是内存访问的,所以快 当然这个大家都知道,所以不是重点 io密集型和cpu密集型 一般我们把任务分为io密集型和cpu密集型 io密集型 IO密集型指的是系统的CPU性能相对硬盘、内存要好很多,此时,系统运作,大 阅读全文
posted @ 2020-04-16 00:49 肥宅快乐码 阅读(1438) 评论(0) 推荐(3) 编辑
摘要: 我起了这么一个奇奇怪怪的标题还能被你搜索到,又或者在冷冷清清的候选区里留意到我的话,那就说明我们很有缘了,既然如此不妨留下来看一下我的碎碎念吧 ———— 我个人在学习编程的过程中,经常会遇到一种“升级突破”一样的情况 类似于以前高中的时候,数学一直只能考100左右,难题都不会做,仿佛这就是你的天赋的 阅读全文
posted @ 2020-04-06 23:57 肥宅快乐码 阅读(349) 评论(0) 推荐(2) 编辑
摘要: 密码学基础 在正式讲解HTTPS协议之前,我们首先要知道一些密码学的知识。 明文: 明文指的是未被加密过的原始数据。 密文:明文被某种加密算法加密之后,会变成密文。 密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥。 对称加密:对称加密又叫 阅读全文
posted @ 2020-03-07 23:21 肥宅快乐码 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 我们调用的Java AIO底层也是要调用OS的AIO实现,而OS主要也就Windows和Linux这两大类,当然还有Solaris和mac这些小众的。 在 Windows 操作系统中,提供了一个叫做 I/O Completion Ports 的方案,通常简称为 IOCP,操作系统负责管理线程池,其性 阅读全文
posted @ 2020-03-07 16:36 肥宅快乐码 阅读(2528) 评论(0) 推荐(1) 编辑
摘要: Reactor 主线程往epoll内核事件表中注册socket上的读就绪事件 主线程调用epoll_wait等待socket上有数据可读 当socket上有数据可读时,epoll_wait通知主线程,主线程则将socket可读事件放入请求队列。 睡眠在请求队列上的某个工作线程被唤醒,它从socket 阅读全文
posted @ 2020-03-06 00:24 肥宅快乐码 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 前置知识 缓存 I/O 缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,操作系统会将 I/O 的数据缓存在文件系统的页缓存( page cache )中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系 阅读全文
posted @ 2020-03-04 17:54 肥宅快乐码 阅读(1477) 评论(0) 推荐(1) 编辑