为什么这段代码不起作用(没有输出)?
clo1 = {
for(int i =0; i<=10; i++){
println(i);
}
}
def thread = Thread.start { clo1 }
但这确实有效:
def thread = Thread.start {
for(int i =0; i<=10; i++){
println(i);
}
}
为什么这段代码不起作用(没有输出)?
clo1 = {
for(int i =0; i<=10; i++){
println(i);
}
}
def thread = Thread.start { clo1 }
但这确实有效:
def thread = Thread.start {
for(int i =0; i<=10; i++){
println(i);
}
}
如果你想clo1
在线程中执行,你可以这样做
Thread.start clo1 // same as Thread.start(clo1)
或者
Thread.start { clo1() }
第一个将闭包直接传递给Thread.start
. 第二种解决方案创建一个新的闭包,它执行clo1
.
只需Thread.start { clo1 }
将一个新的闭包(什么都不做)传递给Thread.start
.
看起来您在传递给 Thread.start { clo1} 的闭包内放置了一个闭包(clo1)。调用 Threat.start clo1 将为您提供预期的结果。
你在一个闭包中包裹一个闭包
尝试
def thread = Thread.start clo1