小编Ays*_*gma的帖子

阻止Akka Actors中的呼叫

作为一个新手,我试图了解演员的工作方式.而且,从文档中,我认为我理解actor是以同步模式执行的对象,并且actor执行可以包含阻塞/同步方法调用,例如db请求

但是,我不明白的是,如果你编写一个内部有一些阻塞调用的actor(比如阻塞查询执行),它会搞乱整个线程池(从某种意义上说cpu利用率会下降等等) ), 对 ?我的意思是,根据我的理解,如果/当演员进行阻止调用时,JVM无法理解它是否可以将该线程切换到其他人.

因此,考虑到并发的性质,演员不应该做任何阻塞调用吗?

如果是这种情况,那么建议的非阻塞/异步调用方法是什么,让我们说一个Web服务调用可以获取内容并在该请求完成时向另一个actor发送消息?我们应该只使用演员内部的东西:

未来地图{response => x!响应

这是处理这个问题的正确方法吗?

如果你能为我澄清这一点,我将不胜感激.

concurrency multithreading scala actor akka

30
推荐指数
2
解决办法
1万
查看次数

标签 统计

actor ×1

akka ×1

concurrency ×1

multithreading ×1

scala ×1