ve2102388688:补充下,HTTP的连接方式:持久连接(1999年的1.1版本--主流),非持久连接(1996年1.0版本)。博主已经提到了非持久连接(无连接),在1.1版本中默认是流水线的持久连接,建立一次TCP中间可以连续请求和响应,而2.0版本在2015推出,所以1.1是主流
0 点赞 评论 收藏
分享
Rozelida:黏包问题写得不够详细,TCP延迟发送只是其中一种情况
0 点赞 评论 收藏
分享
4103248jjjjy:如何应对短连接、高并发的场景?
老哥,这个问题解析内容写成了避免dos攻击的了,望解答!!
0 点赞 评论 收藏
分享
蒋豆芽:多多点赞,会变好看,多多留言,会变有钱哦
0 点赞 评论 收藏
分享
ve2102388688:epoll水平触发与边缘触发的区别:首先,TCP会保证数据有序、不重、不丢。因此内核保证了这点,用户层数据由用户自己保证。假如tcp接到9个a,用户每次接收5个a。水平模式:接连两次报告,第一次5个a,紧接着4个a,即报告完为止。边缘模式:只报告5个a,下次tcp又接到一个b,此时报告是aaaab,即边缘模式在每次触发中都会先报告之前的!!!
0 点赞 评论 收藏
分享
ve2102388688:虚拟内存:(1)引入的原因:物理内存有限下,在逻辑上扩充内存,实现更多进程并发。(2)依赖的原理:局部性原理(时间局部性和空间局部性),可以让程序一部分装入内存,其余留在外存就可以运行。(3)组成:请求调页+页面置换,1. 请求调页:是在基本分页之上的,需要相应的页表机制、缺页中断、地址变换。2. 页面置换:最佳置换、先进先出页面置换、最近最久未使用LRU
0 点赞 评论 收藏
分享
蒋豆芽:欢迎大家留意参与讨论哟
0 点赞 评论 收藏
分享
过不了七夕过六一:这里一个每添加一个线程,进程的额外开销是线程的调用栈的大小,这个是可以修改的,我的ubuntu 20.04是8M,具体多大根据系统和设定来看的,线程调用栈大小查询命令 ulimit -s
0 点赞 评论 收藏
分享
ve2102388688:进程IPC通信:总体来说,在内核提供了专门的结构体,对外提供一组API,对内核而言,只需要感知内核中对应的数据结构的状态就可以准确的提供服务,Linux的源码开放,学习可以通过学习内核源码以及圣经书,就可以快速入门
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
蒋豆芽:加油!
0 点赞 评论 收藏
分享
ve2102388688:cast类型转换: 1. const_cast即去除const的属性,举个很常见的例子。string s = "I love China";char* c_str = const_cast<char>(s.c_str);将字符串转成C语言模式并且可以修改源串 2. dynamic_cast使用于多态环境中,具体有两种:向下转换和向上转换。其中向上转换就是子类指针向父类指针转换,当然这就是普通的static_cast,不会出错;向下转换是从父类指针向子类指针抓换,要进行类型检查,可能失败会抛出异常。建议不要使用 3. reinterpret_cast字面含义是重解释指针,解释成什么呢?将指针解释成整数也是可以的。编译器不做任何语法检查。</char>
0 点赞 评论 收藏
分享
陈运齐:老哥强
投递京东等公司10个岗位 >
0 点赞 评论 收藏
分享
蒋豆芽:欢迎大家一起来讨论。大家可以关注我,以后还有更多原创内容推送
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
关注他的用户也关注了: