Threads
So, what is a thread? You can think of threads in Java programming in the same way you think of threads in a story. In one thread of a story, we might have the primary character battling the enemy on the frontline while in another thread, the soldier's family is getting by, day-to-day. Of course, a story doesn't have to have just two threads. We could introduce a third thread; perhaps the story also tells of the politicians and military commanders making decisions. And these decisions then subtly, or not so subtly, affect what happens in the other threads.
Programming threads are just like this. We create parts/threads in our program that control different aspects for us. Threads are especially useful when we need to ensure that a task does not interfere with the main (UI) thread of the app, or if we have a background task that takes a long time to complete and must not interrupt the main thread of execution. We introduce threads to represent these different aspects because...