对于AKKA中actor的一点个人理解

本文介绍了AKKA中Actor的概念,解释了Actor与线程的区别,强调了Actor的单线程执行和避免阻塞的重要性。此外,讨论了Actor的ask方法的使用限制,并对dispatcher中的thoughtput参数进行了探讨,以优化系统性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于AKKA中actor的一点个人理解

  • Actor是什么
  • Actor和线程的区别
  • Actor是如何执行的
  • 不要阻塞一个Actor
  • 慎用Actor的ask方法
  • thoughtput的一点思考

Actor是什么

曾经看到知乎上有人提过actor就是cpu上的时间片,这种说法非常贴切。Actor之间通过消息进行通讯,一切都是异步的。可以说Actor就像现实生活中的一群人,他们各司其职,互相通过消息进行交流,一个actor收到另外一个actor发来的消息后会按照消息的内容去执行指定的任务,接着再将新任务传递下去或者将执行结果返回给消息发送方。Actor这种模型很好地解决了传统java并发带来的各种问题。

Actor和线程的区别

Actor规避了传统多线程中锁的问题,在Actor中是没有共享变量的,一切都是无状态的,尽管我们可以在actor中去调用一个新的线程去进行一些异步操作,但是这并不符合Actor本身的理念,并且会破坏Actor的整体设计。要记住一点,Actor是单线程运行的,一个Actor同时只能处理一条消息,我们可以通过增加Actor的数量来提高系统并行处理的能力。

Actor是如何执行的

AKKA中使用dispatcher对actor进行执行,当一个actor启动之后会将自身绑定到一个dispatcher上,我们可以在系统配置中定义自己的dispathcer。Dispatcher本身其实是一个线程池,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值