【发布时间】:2021-01-19 05:45:53
【问题描述】:
假设我在 Akka Actor 中有一个带有方法的 Actor 类:
class SecureActor extends Actor{
def methodWithThread(): Unit={
}
可以在这个方法中运行一个新线程吗? Akka自己的线程不会有问题吗?
class ThreadExample extends Thread{
override def run(){
println("Thread is running...");
}
def methodWithThread(): Unit={
var t = new ThreadExample()
t.start()
}
【问题讨论】:
-
您将破坏 Akka 为您提供的并发安全性。您提出的这种情况通常是从一个单亲产生多个演员子作为解决方案。
-
谢谢。我想确定这一点。你可以在答案中更详细地展示它,以便我接受吗? @费利佩
-
您能否详细说明您为什么要这样做?听起来有点像XY problem
-
@yuval-itzchakov 我想阻止演员,只留下线程向其他演员发送一些控制消息。
-
阻止一个actor有点违背Akka的核心原则。为什么需要屏蔽演员?演员可以直接将消息发送给子演员吗?
标签: multithreading scala concurrency akka akka-actor