05 2022 档案
摘要:进程是资源管理的最小单位 线程时程序执行的最小单位 java中的线程映射操作系统中的一个线程,如果java程序task执行很小,将面临大量的线程切换 ,这个线程切换是操作系统的行为 比较损耗性能 routine 是程序的多个线程映射一个操作系统线程,routine之间的切换是程序语音自己的行为,操作
阅读全文
摘要:tcp三次握手之后 1. client发送 client hello给服务端 会告诉服务端支持的加密套件和支持的tls版本 生成一个随机数发送给服务端 2. service发送 service hello给客户端 告诉客户端确认支持的tls版本和选择的加密套件 生成一个随机数返回给客户端 3. se
阅读全文
摘要:cpu使用率问题 1. 在服务器上执行top命令确定是否是java进程导致的cpu过高 2. 定位到了进程之后 定位哪个线程导致的cpu过高 执行top -Hp pid 查看进程中线程的cpu占用率 3. 定位代码 jstack 进程id |grep -A 200 线程pid(pid是16进制数)
阅读全文
摘要:1. 使用自增id(数值)->url这种映射关系 2. id使用base62编码 浏览器中可以直接使用不用处理,并且1亿的值只用生成5个字符 3. 为了避免用户使用无效的短码请求给数据库造成压力,url最后一位可以设置为校验和 | id base62编码 | 校验和 | a s d x K 9 1
阅读全文
摘要:tcp使用四种算法实现拥塞控制 1. 慢开始 拥塞窗口值 cwnd 控制每次传输报文段数量 在未达到慢开始门限值之前,每次收到确认报文 cwnd*2 慢开始门限值 达到慢开始门限值之后,每次收到确认报文 拥塞窗口值+1 2. 拥塞避免 当传输期间超时未收到确认报文,就会将慢开始门限值设置为当前拥塞窗
阅读全文
摘要:内存划分 1. 运行时数据区 - 堆 可能划分出多个线程私有的分配缓冲区tlab 在使用完tlab时会分配新的tlab这期间申请内存会同步锁定 - 虚拟机栈 - 本地方法栈 会抛出stackOverFlowError/OutOfMemoryError - 方法区 存储虚拟机加载的类信息/常量/静态常
阅读全文