You will learn how to avoid common pitfalls of parallel programming, such as deadlocks, thread starvation etc. Additionally, you will get a look into code synchronization and how that can be achieved. Finally, design strategies for writing multi-threaded code will be examined.