按时间归档:2021年01月
-
【2021年1月28日】每日阅读-Java如何实现的volatile
通过“内存屏障”,有了内存屏障就会强制使cpu缓存失效,达到保证可见性的目的。
-
2021年1月26日-Java死锁检测
死锁检测可以使用jps配合jstack。jps获取进程pid,然后传给jstack,结果如下图:
-
【每日阅读】2021年01月25日-jvm分区、垃圾回收算法
jvm分区 程序计数器、java虚拟机栈、堆、方法区、运行时常量池、本地方法栈 垃圾回收算法 复制算法、标记清除、标记整理 垃圾回收器 Serial GC、ParNew GC、CM…
-
【每日阅读】2021年1月19日-缓存高可用方案
客户端方案 客户端可以使用使用算法在多个缓存服务端之间选择出一个使用。 服务端方案 例如redis sentinel,是redis自带的高可用方案。 中间件方案 这个中间件负责帮助…
-
【每日阅读】2021年01月18日-缓存读取模式
Cache Aside 把缓存当做一个旁路。 读:如果缓存命中了就直接返回,没有就从数据库读,并且把数据放入缓存。 写:如果缓存命中了就将缓存的数据删除,然后写数据库。 Read/…
-
【每日阅读】2021年1月15日-netty
netty使用计算机系统提供的select或者epoll机制,实现单个线程可以监听多个socket连接。这就使得单台机器可以承接的socket连接数可以很高很高。 这种使用sele…
-
【每日阅读】2021年1月12日-数据库拆分有什么方法?
当数据库压力过大时,一遍需要开发人员对数据库进行拆分来使用,笼统的来说有两种拆分方式 纵向拆分 这种方式就是将不同的表拆分进不同的库。 横向拆分 即将同一张表的数据根据一个规则拆分…
-
【每日阅读】2021年01月10日-TCP分手最后提出分手的一方为什么要等待2MSL
MSL即Maximum Segment Lifetime,报文最大生存时间。 提出分手的一方A在收到另一方B发送的“断开连接”请求后,返回ACK说“我知道你也要断开连接了”这个意思…
-
【每日阅读】2021年01月09日-TCP连接为什么是3次
如果是2次 A申请连接B,B说可以。那么B此时其实是不能确认自己已经和A连接成功了的,因为A很可能没有收到它说的可以,所以两次是肯定不行的,B必须收到一次确定的A的回复才说明连接应…
-
【每日阅读】2021年1月8日-并发设计模式Thread-Per-Message、Worker Thread
Thread-Per-Message 就是每个任务创建一个线程,这种模式在Java内不常用,因为Java的线程比较重,但是在Go这种语言中就很常用,因为Go使用的是协程,比较轻量,…