Groovy 如何了解GPAR runForkJoin和forkOffChild方法
我正在尝试使用这些方法,但没有成功。如果有人能帮助我,我会很高兴的。 我正在使用groovy,我有两个字符串映射。 我想用线程在两个映射的字符串之间进行匹配(由GPAR使用) 例如: def firstMap=[“a”:“a”,“b”:“b”] def secondMap=[“c”:“c”,“a”:a”] 在贴图之间求等的正常方法是Groovy 如何了解GPAR runForkJoin和forkOffChild方法,groovy,gpars,Groovy,Gpars,我正在尝试使用这些方法,但没有成功。如果有人能帮助我,我会很高兴的。 我正在使用groovy,我有两个字符串映射。 我想用线程在两个映射的字符串之间进行匹配(由GPAR使用) 例如: def firstMap=[“a”:“a”,“b”:“b”] def secondMap=[“c”:“c”,“a”:a”] 在贴图之间求等的正常方法是 fistMap.findAll().each { first -> secondMap.findAll.each { second ->
fistMap.findAll().each { first ->
secondMap.findAll.each { second ->
if (first.key.equals(second.key) && (first.value.equlas(second.value))
//saveItIntoArray
}
}
我想用gpars线程执行此操作,因此我尝试:
withPool(2) {
runForkJoin(firstMap) { task ->
task.each {
secondMap.each {
//equals
}
forChild(?)
}
}
}
我对这个有点陌生,我真的不知道如何让它工作。
我将感谢任何帮助。
谢谢
或者。我建议使用并行集合:
def firstMap = ["a":"A", "b":"B"]
def secondMap = ["c":"C", "a":"A"].asImmutable()
withPool{
println firstMap.findAllParallel { fk, fv -> secondMap.findResult { sk, sv -> fk == sk && fv == sv ? [(fk):fv] : null } }
}
执行第一位代码的更好方法是
firstMap.findResult{fk,fv->secondMap.findResult{sk,sv->fk==sk&&fv==sv?[(fk):fv]:null}