【发布时间】:2011-06-13 18:27:25
【问题描述】:
我有一个缓存,我想定期检查和修剪。在 Java 中,我会执行以下操作:
new Thread(new Runnable() {
void run() {
while (true) {
Thread.sleep(1000);
// clear the cache's old entries
}
}
}).start();
当然,我在将线程安全类型用作缓存时会遇到一些问题,但撇开这些不谈,我的问题很简单。 Scala 运行重复后台任务的方式是什么——您不想在应用程序的主线程中运行?
我已经使用了一些演员,我想我在这种情况下的问题是我没有任何东西可以生成一条消息,表明是时候清除缓存了。或者更确切地说,我能想象生成这些消息的唯一方法是创建一个线程来执行它......
编辑:我需要人们对答案进行投票——他们对我来说都很好
【问题讨论】:
-
线程生成很大程度上取决于您的系统。对于每个这样的情况,你可能会花费很多钱。看看 ScheduledThreadPoolExecutor,你可以从 Scala 中使用它,并在 scala.concurrent 包中定义一些帮助程序
标签: multithreading scala