The Bad News:

In practice, multithreading is VERY hard to get right. Employing self-created multithreaded code in your app comes with bugs, race conditions, the difficulty of testing, and the list goes on and on...

The Good News:

Many frameworks (Mobile or Web) employ multithreading behind the scenes and let you interface around something that's easier to use. However, it is still important to understand how it works. This section will explain the core concepts behind concurrency and multithreading. We will not cover low-level implementation, nor will we build any projects that revolve around multi-threading. At the very least, a definitive multithreading guide would demand its own course.