5

AKA 以设定的时间间隔做某事。

例如,假设我想每 60 秒扫描一次某个目录。

在Java中,我会使用ScheduledExecutorService这样的:

Executor pool = Executors.newScheduledThreadPool(10)
pool.scheduleAtFixedRate(scanner, 0, 60, TimeUnit.SECONDS)

这很好用。

问题是,我想我想尝试在我的程序中使用 Scala 演员,但是对于如何将演员和 Java 执行器结合起来,或者它们是否应该结合起来,我有点困惑。

我想也许我可以有一个简单的跑步者,它只会每N秒向演员发送一条消息——这有意义吗?

4

2 回答 2

2

我想也许我可以有一个简单的跑步者,它只会每 N 秒向演员发送一条消息——这有意义吗?

是的,顺便考虑将 Akka 用于 Actors。它有一个更简单的 API、更好的性能并且里面有很多好吃的东西。

于 2010-07-07T06:17:36.853 回答
0

您可以尝试ScalaExecutor本身,而不是 Java。

执行提交的java.lang.Runnable任务的对象。
该接口提供了一种将任务提交与每个任务将如何运行的机制解耦的方法,包括线程使用、调度等
的细节。通常使用 Executor 而不是显式创建线程。例如new Thread(new(RunnableTask())).start(),您可以使用以下命令,而不是为一组任务中的每一个调用:

 Executor executor = anExecutor;
 executor.execute(new RunnableTask1());
 executor.execute(new RunnableTask2());
 ...
于 2010-07-07T03:54:18.710 回答