このコードが機能しない(出力がない)のはなぜですか?
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
ます。2 番目の解決策は、実行する新しいクロージャを作成しclo1
ます。
新しいクロージャ (何Thread.start { clo1 }
もしない) を に渡すだけですThread.start
。
Thread.start { clo1 } に渡されたクロージャー内にクロージャー (clo1) を配置したようです。Threat.start clo1 を呼び出すと、期待した結果が得られます。
クロージャーをクロージャーでラップしています
試す
def thread = Thread.start clo1