置顶
公交车
21 9 2020
公交车......
I/O 多路复用与协程
13 2 2019
并发:一个时间段内,有多个程序在同一个CPU上运行(但任意时刻只有一个在CPU上运行);
并行:任意时间点上,有多个程序同时运行在多个CPU上;
同步:代码调用I/O操作时,必须等待I/O操作完成才返回;
异步:代码调用I/O操作时,不必等I/O完成就返回;
阻塞:调用函数时当前线程被挂起;
非阻塞:调用函数时当前线程不会被挂起(立即返回)。......
搞懂HTTP和HTTPS协议
13 2 2019
HTTP/0.9	1991年	不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求	没有作为正式的标准
HTTP/1.0	1996年	传输内容格式不限制,增加PUT、PATCH、HEAD、 OPTIONS、DELETE命令	正式作为标准
HTTP/1.1	1997年	持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码	2015年前使用最广泛
HTTP/2	2015年	多路复用、服务器推送、头信息压缩、二进制协议等	逐渐覆盖市场......
IO 多路复用是什么意思?
4 8 2018
传统方法,使用多进程并发模型,每进来一个新的i/o流都会单独去分配一个新的进程管理(开辟出无限个进程,增加系统负担,导致崩溃死机)
后来使用i/o多路复用(利用单个线程,通过记录和跟踪每个i/o流状态,来同时管理多个i/o连接)
select , poll ,epoll  都是i/o多路复用的具体实现.......
TCP协议详解
5 6 2018
序号 seq(sequence):
由于tcp的可靠连接,每一个“TCP报文段中的第一个字节”都会被赋予一个序列号。序列号是个32位数,到达2^32-1后会再回到0.

确认号 ack (acknowledge):
确认号包含的值为:“确认号的发送方”希望接收的下一个序列号。(即最后接收成功的序列号+1)......
彻底理解同步 异步 阻塞 非阻塞
3 11 2019
彻底理解同步 异步 阻塞 非阻塞......
Unicode 和 UTF-8、UTF-16、UTF-32之间的
20 7 2018
UTF-8 就是使用变长字节表示,顾名思义,就是使用的字节数可变,这个变化是根据 Unicode 编号的大小有关,编号小的使用的字节就少,编号大的使用的字节就多。使用的字节个数从 1 到 4 个不等。 UTF-8 的编码规则是:  ① 对于单字节的符号,字节的第一位设为 0,后面的7位为这个符号的 Unicode 码,因此对于英文字母,UTF-8 编码和 ASCII 码是相同的。  ② 对于n字节的符号 (n>1),第一个字节的前 n 位都设为 1,第 n+1 位设为 0,后面字节的前两位一律设为 10,剩......
【原创】 哪些情况下,y!=x-(x-y)会成立?
4 8 2018
# 非空且不为子父关系的两个集合,符合条件
x = {"a","b","c"}
y = {"b","d"}
{"a","b","c"} - {"a","c"} = {"b"}
{"b","d"} != {"b"}......
为何4个字节int取值范围是-2^31 到2^31 - 1
22 7 2019
当负0时,对应的二进制数值是1000 0000,当正0时,对应的二进制数值是0000 0000,不知道看到这儿,你有没看出端倪,无论看没看粗来,我都得说粗来,那就是,本来数学上,正0和负0表示的是同一个数,然鹅在这种情况下,正0和负0表示了两个数值,也就是计算机内部用了两个二进制数来表示和存储这两个0,现在是不是觉得恍然大悟呢?......
【原创】 理解TCP和UDP
3 8 2019
TCP与UDP的区别:
基于连接与无连接
对系统资源的要求(TCP较多,UDP少)
UDP程序结构较为简单
流模式与数据报模式
TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证......
了解信号量Semaphore和线程池的差异
4 8 2018
1. 线程池和信号量在某种程度如允许执行的线程数效果上是一样,但线程池可以获取线程执行结果得到线程执行状态
2. 使用线程池需要首先实例化,然后提交线程,返回线程对象,然后在主线程中选择获取结果或者不需要结果,也可以选择堵塞等待线程执行完或不等待线程执行完
3. 获取线程执行结果,可以参照Go语言中CSP通信模式,个人觉得这是个非常好的解决方案,这样的线程池接口提交远比CSP通信来的复杂......