Scala Akka中的自定义线程逻辑

Scala Akka中的自定义线程逻辑,scala,akka,Scala,Akka,当池线程开始执行时,我有一个特殊的代码要执行,当它完成时,我有另一个特殊的代码要执行 我的意思是,需要在线程开始执行actors代码之前调用initialize(),然后调用cleanup(),以便初始化特定于线程的资源(例如数据库连接)和清理(关闭任何已打开的连接) 在线程范围内完成它将是非常棒的。我想在trait中使用所有参与者的混合,但是在这个范围内,初始化是由参与者进行的。我想如果我通过线程来实现的话,我会有更好的表现 任何建议都将不胜感激 谢谢你的清理代码,你会有麻烦的,因为你没有可以

当池线程开始执行时,我有一个特殊的代码要执行,当它完成时,我有另一个特殊的代码要执行

我的意思是,需要在线程开始执行actors代码之前调用initialize(),然后调用cleanup(),以便初始化特定于线程的资源(例如数据库连接)和清理(关闭任何已打开的连接)

在线程范围内完成它将是非常棒的。我想在trait中使用所有参与者的混合,但是在这个范围内,初始化是由参与者进行的。我想如果我通过线程来实现的话,我会有更好的表现

任何建议都将不胜感激


谢谢你的清理代码,你会有麻烦的,因为你没有可以使用的钩子。我建议使用Actor生命周期来建模您的资源生命周期,即在启动Actor时创建一个DB连接,并在postStop中关闭它。然后,不使用ThreadLocal数据库句柄,而是将DB查询发送到(参与者池)。不要担心线程本身,这是Akka的工作

akka的目的是您不应该考虑低级别线程。但是,如果你真的想这样做,我会用actor A{处理初始化和清理}来构造你的actor系统,然后生成它自己的actor Bs{workers来处理其他事情}。为你的固定actor使用固定actor和线程池执行器。默认调度程序将在线程之间共享参与者。