当对一个系统进行全链路异步化改造完成后,我发现压根就不需要去想很复杂的并发算法了,哪怕遇到多个线程需要修改某个共享对象的问题,只需要通过一个简单的 CAS 操作就能完美实现,比如对记录加行锁就能用 CAS 实现,又比如对 btree page 执行插入和删除操作,也可以用 CAS 实现一个 page 锁。

@zhh-4096

通过调试 java 虚拟线程调度器的代码,我发现虚拟线程有3个弱点:1. 虚拟线程出入调度器的队列有开销;2. 虚拟线程发生切换时也有开销;3. 虚拟线程遇到 synchronized 的代码会阻塞调度器中运行它的系统线程更是致命的。所以要想追求极致的低延迟和高吞吐,对系统进行全链路异步化改造才是唯一解! ​​​

Reply to this note

Please Login to reply.

Discussion

No replies yet.