我在这里找到了这个例子Data Parallelism
GParsPool.withPool() {
Closure longLastingCalculation = {calculate()}
Closure fastCalculation = longLastingCalculation.async()
Future result=fastCalculation()
//do stuff while calculation performs …
println result.get()
}我发现它有点太广泛了。有没有办法缩短它?
也许:
GParsPool.withPool() {
Future result = calculate().async()
//do stuff while calculation performs …
println result.get()
}这样行得通吗?
如果没有,有没有其他方法?
发布于 2013-01-26 07:58:49
我想你需要:
Future result = { calculate() }.async()()发布于 2013-01-26 08:00:50
calculate().async()将立即启动calculate方法。我敢打赌
GParsPool.withPool() {
Future result = {calculate()}.async().call()
//do stuff while calculation performs …
println result.get()
}因为async()返回一个闭包。我不确定({calculate()}.async())()是否有效,我稍后会测试它
https://stackoverflow.com/questions/14531276
复制相似问题