java - Actor 与线程的定义有何不同?

标签 java multithreading scala akka actor

<分区>

我试图了解 Actors 和线程定义的区别。有的文章说actor是轻量线程,有的文章说actor不是线程。我也明白一个线程可以运行多个 Actor 。我对如何准确区分 Actor 和线程感到困惑。请帮助我理解谢谢!

最佳答案

线程相比,

Actor 处于更高的抽象级别。

Thread 是一个 JVM 概念,而 Actor 是在 JVM 中运行的普通 java 类,因此问题不在于 Actor 与Thread,更多关于 Actor 如何使用 Threads

什么是 Actor?

在非常简单的层面上,Actor 是一个实体,一次接收一个消息,并对这些消息作出 react 。

enter image description here

Actor如何使用线程?

当 Actor 收到消息时,它会执行一些操作作为响应。 action 代码如何在 JVM 中运行?同样,如果简化情况,您可以想象 Action 在当前线程上执行 action 任务。此外,Actor 可能决定在线程池上执行action 任务。只要 Actor 确保一次只处理一条消息,这并不重要。 enter image description here

关于java - Actor 与线程的定义有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47248820/

相关文章:

java - Java中的嵌套监视器

parsing - Scala-具有查询字符串解析器和Builder DSL的URL

java - 多线程概念

Scala - 用索引压平列表以制作 Tuplets

java - Scala、SQL Server - 如何使用 Scala 将当前时间戳作为日期时间插入 SQL Server 中?

java - 如何比较线程对象

Java 字符串构造函数

java - 如何使Environment.getExternalStoragePublicDirectory()创建到SD卡的路径,而不是模拟/0(内部存储器)?

Java同步静态列表?

C# ThreadStatic + volatile 成员未按预期工作