Oh great that makes it much more clear :)

Two doubts:

  1. Placing run() inside main() generates "illegal start of expression error"? So why can't run() be placed inside main()?

2.With the above code I am getting the output as A C D B. Why B comes last is because of join(). But what I'm unable to understand is that on invoking start() shouldn't run() get called immediately thus generating the output as C D A B?

Help please..Thanks