Prerequisite: 206


Course Materials

IRC #gnome-university

This course will cover the basics of threaded programming. Students will learn how to separate their work into tasks that can be executed on threads in parallel. Additionally, students will learn synchronization primitives and how to communicate between mutliple threads of execution. Students will use gdb to explore and analyize how their programs execute. Deadlocks and how to avoid them will be discussed.

Students will work through the following chapters and perform the exercises. Questions may be asked of the mentor as well as the community on IRC.


These need to be organized into chapters. Feel free to add to this.

  • What are threads of execution?
  • How can a program be doing multiple things at once?
  • How are threads scheduled onto a CPU?
  • Thread local storage (that other TLS) and thread

  • Communicating between threads.
  • Parallel vs concurrent.
  • Memory ownership and threads.
  • Mutex and conditions
  • Deadlocks
  • Reader writer locks
  • Priority inversion and starvation

Chapter 1

Chapter 2

Chapter 3

Chapter 4

Chapter 5

Chapter 6

Chapter 7

Chapter 8

Chapter 9

Chapter 10

Outreach/GnomeUniversity/C/Threading (last edited 2013-12-04 18:14:59 by WilliamJonMcCann)