У меня есть кое-что, что, на мой взгляд, было бы простым, но затем я столкнулся с проблемой, которую не могу понять, подумав некоторое время.
Итак, вот простой минимальный фрагмент кода, включающий два потока:
package com.alexander.arendar
package object concscalaprog {
def thread(block: =>Unit):Thread = {
val t = new Thread{
override def run(): Unit = block
}
t.run()
t
}
}
и
package com.alexander.arendar.concscalaprog
object Chapter2 {
def main(args:Array[String]):Unit = {
val t1 = thread(println(Thread.currentThread().getName))
t1.join()
}
}
Я ожидал увидеть в консоли нечто отличное от
main
, но это былоименно то, что я видел в качестве выходной программы.Не могли бы вы, ребята, помочь мне понять, почему он не распечатывает название отдельного потока, который он создает?