如何深入理解Actor模型并剖析protoactor-go的实现原理?

2026-05-23 03:230阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3236个文字,预计阅读时间需要13分钟。

概述定义来自维基百科:计算机科学中的演员模型是一种并发计算数学模型,将演员视为并发计算的基本单元。在接收到消息后,演员c...

Overview Definition

From wikipedia

The actor model in computer science is a mathematical model of concurrent computation that treats actor as the universal primitive of concurrent computation. In response to a message it receives, an actor can: make local decisions, create more actors, send more messages, and determine how to respond to the next message received.

将 actor 是并发计算中的一个基本原语,actor 接收消息并对收到的消息做出响应。

下面说说我个人对 actor 的理解吧,不一定对,有不对的地方欢迎指正!

为什么 Actor model 可以解决并发问题?

首先想想并发问题是如何产生的,对同一个数据进行同时写(或者同时读写)会产生并发问题。所以主需要破坏“同时”这个条件,并发问题就迎刃而解了。

常用的互斥锁就是这是这种思路,它保证同一时刻只有一个线程可以访问到数据,在锁的保护下,多个线程对数据的访问变成有序的了。

senders 给 actor 发送消息时,actor 将消息放在了它的邮箱 (Mail) 中,并从邮箱中一条条取出消息来处理。同一时刻,不会有两条消息被处理,这次消息的处理顺序是有序的,因此自然不会有并发问题。

阅读全文

本文共计3236个文字,预计阅读时间需要13分钟。

概述定义来自维基百科:计算机科学中的演员模型是一种并发计算数学模型,将演员视为并发计算的基本单元。在接收到消息后,演员c...

Overview Definition

From wikipedia

The actor model in computer science is a mathematical model of concurrent computation that treats actor as the universal primitive of concurrent computation. In response to a message it receives, an actor can: make local decisions, create more actors, send more messages, and determine how to respond to the next message received.

将 actor 是并发计算中的一个基本原语,actor 接收消息并对收到的消息做出响应。

下面说说我个人对 actor 的理解吧,不一定对,有不对的地方欢迎指正!

为什么 Actor model 可以解决并发问题?

首先想想并发问题是如何产生的,对同一个数据进行同时写(或者同时读写)会产生并发问题。所以主需要破坏“同时”这个条件,并发问题就迎刃而解了。

常用的互斥锁就是这是这种思路,它保证同一时刻只有一个线程可以访问到数据,在锁的保护下,多个线程对数据的访问变成有序的了。

senders 给 actor 发送消息时,actor 将消息放在了它的邮箱 (Mail) 中,并从邮箱中一条条取出消息来处理。同一时刻,不会有两条消息被处理,这次消息的处理顺序是有序的,因此自然不会有并发问题。

阅读全文