
经典问题
霁云HYY
博客中的很多内容都是取自公众号《儒猿技术窝》中的专栏,进行了一定的修改和总结,感兴趣的同学可以自行查找更加具体的专栏参考和学习
展开
-
大白话讲解为啥TCP需要三次握手建立连接和四次挥手断开连接
TCP建立连接断开连接这都是老生常谈的问题了,这篇博客不打算赘述那些每次连接传输了什么SYN、ACK等信息,只讨论为什么需要特定次数的数据交换才能完成建立连接和断开连接这两个过程 首先是建立连接,这个过程需要三次握手,直接上图 大概流程如图所示,首先客户端需要确认服务端能接受到信息,然后服务端同样返回信息给客户端保证服务端到客户端通讯畅通,最后客户端确认建立连接,这样三次握手就能保证建立连接 乍一看可能觉得第三次握手有点多余,现在如果我们去掉第三次握手并假设这么一个场景,客户端发送第一次握手之后长时间没有原创 2021-04-09 11:27:17 · 465 阅读 · 0 评论 -
Spring循环依赖(缩略版)
Spring循环依赖问题也算是个老掉牙的问题,一搜一大把,这里纯粹是为了给自己做个笔记,所以写(水)一篇博客 那么为什么要叫缩略版呢,因为这里不打算分析Spring源码来讲了(主要是因为懒),能画图那就不分析代码 首先Spring创建一个对象分为了三步:实例化 -> 填充属性 -> 初始化 那如果是在构造器中进行了循环依赖,假如A的构造器依赖于B,B的构造器中依赖于A,那么就类似于死锁了,Spring也救不了你 那么如果是使用setter方式的话呢? @Component public cla原创 2020-09-14 15:16:43 · 187 阅读 · 0 评论 -
图解零拷贝
零拷贝相信大家都听过了,说白了呢,其实就是传统IO的性能实在有点拉胯,所以搞出来一个零拷贝机制提升一下效率 要了解零拷贝的话,首先得先了解一下传统IO的执行流程,这里举个例子,通过传统的IO进行网络传输来传输一个文件 先上一张图,这张图就代表了传统IO传输文件的流程, 读取文件的时候,会从用户态切换为内核态,同时基于DMA引擎将磁盘文件拷贝到内核缓冲区 看到这里,可能你就已经懵逼了,什么是用户态和内核态,什么是DMA拷贝,我用大白话解释一下 首先用户态其实就是CPU在执行你的代码,而内核态呢,其实就是原创 2020-08-09 20:41:39 · 330 阅读 · 0 评论