Threading in Java is really fairly simple. At first, it really might not seem that way, but there aren’t a lot of parts to a simple multi-threaded model. The difficulty only comes at later, more complex, stages of application development, such as controlling multiple threads sharing data and resources. That problem is very similar to having one person vs a crowd of people sharing food and living space. With one person, there is no real extra effort required, you can just about let them do as they please.