Eventually you will find a case where you need to thread your application. This means you can have part of your program "running in the background" without interupting your user experience. Or maybe you want to be able to handle many inputs or outputs but don't want their wait times to affect aquiring other input / output or slowing down the program's core logic. Whatever the reason, Java made multithreading very easy to do! Let's take a look..