3

我正在 GPars 库之上构建我的并发应用程序。它在底层包含一个线程池,所以我想通过这个池来解决所有与并发相关的任务。

我需要以一定的延迟(例如 30 秒)运行任务。我也想定期运行一些任务。

有什么方法可以用 GPars 实现这些东西吗?

4

1 回答 1

0

Thread.sleep延迟和Quartz调度呢?我知道有明显的选择,但我认为使用它们没有任何问题。

我的意思是将 GPars 与一些高阶闭包混合在一起,例如:

@Grab(group='org.codehaus.gpars', module='gpars', version='1.2.1')

def delayDecorator = {closure, delay ->
    return {params ->
        Thread.sleep (delay)
        closure.call (params)
    }
}

groovyx.gpars.GParsPool.withPool() {
    def closures = [{println it},{println it + 1}], delay = 1000
    closures.collect(delayDecorator.rcurry(delay)).eachParallel {it (1)}
}
于 2015-03-27T08:35:19.343 回答