multithreading - Scala中的后台任务

标签 multithreading scala

我有一个要定期检查和修剪的缓存。在Java中,我将执行以下操作:

new Thread(new Runnable() {
  void run() {
    while (true) { 
      Thread.sleep(1000);
      // clear the cache's old entries
    }
  }
}).start();

当然,我将线程安全类型用作缓存时会遇到一些问题,但撇开这个问题,我的问题很简单。 Scala运行重复后台任务的方式是什么-您不希望在应用程序的主线程中运行某些东西?

我已经使用过actor了一点,我想在这种情况下的问题是我没有任何东西可以生成一条消息,该消息是时候清除缓存了。或者更确切地说,我可以想象生成这些消息的唯一方法是创建一个线程来执行此操作。

编辑:我需要人们对答案进行投票-他们对我来说都很好

最佳答案

有很多方法可以做到这一点,但是我会做一些简单的事情,如下所示。

import scala.concurrent.ops._

spawn {
  while (true) { 
    Thread.sleep(1000);
    // clear the cache's old entries
  }
}

希望这可以帮助。

关于multithreading - Scala中的后台任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6334566/

相关文章:

javascript - phonegap ios 和 android 中的多线程问题

c - 使现有的 ANSI C 代码线程安全和可重入

scala - 等待 future ,得到一个

scala - 如何在常见的sbt项目中下载sbt插件源jar?

Java资源-游戏模拟

java - 运行程序60分钟,每个线程使用不同的ID

c# - 线程池异常

postgresql - Scala 的任何中途体面的 jdbc 包装器?

scala - Scala中缺少多集吗?

scala - 如何在 sbt 中命令执行测试?