Почему следующий код создает тупик:
object Test extends Application
{
def printProgress(i:Int) =
{
println("Processed " + i)
}
println("A")
(1 to 1000).par.foreach{ i =>
printProgress(i)
}
println("B")
}
(т.е. печатается A
, но не печатаются ни B
, ни какие-либо из строк Processed ...
.)
Однако следующий код не вызывает взаимоблокировки:
object Test extends Application
{
println("A")
(1 to 1000).par.foreach{ i =>
println("Processed " + i)
}
println("B")
}
(т.е. все печатается.)
Я использую Scala версии 2.9.1.final.