到目前为止,我在groovy中有如下代码
HashMap map = new HashMap()
for(char i='a'; i<='z'; i++) {
def name = getName(i)
def info getInfo(i)
map.put(name, info)
}
serializeMap(map)
在Groovy中同时运行此循环的最佳方法是什么?
答案 0 :(得分:10)
有一个名为GPars的Groovy扩展。它支持几种并发技术,如Fork / Join或Actor模型。使用GPars,您的代码可能看起来像这样(我无法弄清楚您正在迭代的内容):
import groovyx.gpars.GParsPool
Map map = [:] as ConcurrentMap
GParsPool.withPool {
chars.eachParallel { i ->
def name = getName(i)
def info = getInfo(i)
map[name] << info
}
}
答案 1 :(得分:2)
使用Java流:
Stream.of("a", "b", "c", "a1", "b1", "c1", "a2", "b2", "c2")
.parallel()
.forEach({ println it })