返回介绍

7.1 新并发模型:Actor

发布于 2024-08-21 22:20:21 字数 505 浏览 0 评论 0 收藏 0

对于并发程序来说,线程始终作为并发程序的基本执行单元。但在Akka中,你可以完全忘记线程了。当你使用Akka时,你就有一个全新的执行单元——Actor。Actor是什么呢?

简单来说,你可以把Actor比喻成一个人。多个人之间可以使用语言进行交流。比如,老师问同学5乘以5是多少呀?同学听到问题后,想了想,回答说是25。Actor之间的通信方式和上述对话形式几乎是一模一样的。

传统Java并行程序,还是完全基于面向对象的方法。我们还是通过对象的方法调用进行信息的传递。这时,如果对象的方法会修改对象本身的状态,那么在多线程情况下,就有可能出现对象状态的不一致,所以我们必须对这类方法调用进行同步。当然,同步往往就是以牺牲性能为代价的。

在Actor模型中,我们失去了对象的方法调用,我们并不是通过调用Actor对象的某一个方法来告诉Actor你需要做什么,而是给Actor发送一条消息。当一个Actor收到消息后,它有可能会根据消息的内容做出某些行为,包括更改自身状态。但是,在这种情况下,这个状态的更改是Actor自己进行的,并不是由外界被迫进行的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文