Difference between invoking thread.start() and thread.run()
Consider following thread example written in kotlin
fun main() {
val thread = Thread {
for(i in 0..10)
println("Hi Am Thread0 ${Thread.currentThread()}")
}
println("Start ")
thread.start()
println("Finish ${Thread.currentThread()}")
}
Above output looks like below,
Start
Finish Thread[main,5,main]
Hi Am Thread0 Thread[Thread-0,5,main]
Hi Am Thread0 Thread[Thread-0,5,main]
Hi Am Thread0 Thread[Thread-0,5,main]
Hi Am Thread0 Thread[Thread-0,5,main]
Hi Am Thread0 Thread[Thread-0,5,main]
Hi Am Thread0 Thread[Thread-0,5,main]
if we change thread.start() to thread.run(), then output looks like below,
Start
Hi Am Thread0 Thread[main,5,main]
Hi Am Thread0 Thread[main,5,main]
Hi Am Thread0 Thread[main,5,main]
Hi Am Thread0 Thread[main,5,main]
Hi Am Thread0 Thread[main,5,main]
Hi Am Thread0 Thread[main,5,main]
Finish Thread[main,5,main]