文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
7.1 新并发模型:Actor
对于并发程序来说,线程始终作为并发程序的基本执行单元。但在Akka中,你可以完全忘记线程了。当你使用Akka时,你就有一个全新的执行单元——Actor。Actor是什么呢?
简单来说,你可以把Actor比喻成一个人。多个人之间可以使用语言进行交流。比如,老师问同学5乘以5是多少呀?同学听到问题后,想了想,回答说是25。Actor之间的通信方式和上述对话形式几乎是一模一样的。
传统Java并行程序,还是完全基于面向对象的方法。我们还是通过对象的方法调用进行信息的传递。这时,如果对象的方法会修改对象本身的状态,那么在多线程情况下,就有可能出现对象状态的不一致,所以我们必须对这类方法调用进行同步。当然,同步往往就是以牺牲性能为代价的。
在Actor模型中,我们失去了对象的方法调用,我们并不是通过调用Actor对象的某一个方法来告诉Actor你需要做什么,而是给Actor发送一条消息。当一个Actor收到消息后,它有可能会根据消息的内容做出某些行为,包括更改自身状态。但是,在这种情况下,这个状态的更改是Actor自己进行的,并不是由外界被迫进行的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论