论为何Actor模型下在高并发下并发效率远高于传统锁同步模型
为什么Actor模型在高并发下的并发效率远高于传统锁同步模型?在高并发的环境下,大量请求访问共享资源,为保证一致性,共享资源的访问需要是同步访问,当大量请求到来时,会有大量的锁竞争,如果只是自旋锁,锁阻塞不会释放CPU资源,就导致大量的线程积压。线程积压会导致系统调度的复杂度增加,进而导致整个系统的运行效率下降。
为什么Actor下高并发不会带来这个问题呢?首先我们要知道Actor模型的核心思想就是不存在共享资源,所有的资源都是Actor的私有资源,私有资源的访问通过Actor之间的message来进行。同时,Actor再消费message时,等待回复(操作或获取)的Actor内部如果没有消息,就会释放自己的协程。这样就避免锁阻塞带来的线程积压的问题。
This post is licensed under CC BY 4.0 by the author.