سرفصل های دوره:
1. مقدمه ای بر برنامه نویسی همزمان و ناهمگام
2. مفاهیم کلیدی برنامه نویسی همزمان
3. مفاهیم کلیدی برنامه نویسی ناهمگام
4. چرایی استفاده از برنامه نویسی همزمان
5. چرایی استفاده از برنامه نویسی ناهمگام
6. تفاوت های اصلی همزمان و ناهمگام
7. کاربردها و مثال ها در دنیای واقعی
8. نکات مهم قبل از شروع
9. محیط توسعه C
10. نصب و پیکربندی کامپایلر C
11. ساخت اولین پروژه C
12. مقدمه ای بر ریسمان ها (Threads)
13. مفهوم ریسمان
14. ایجاد ریسمان ها در C
15. مدیریت ریسمان ها
16. پایان دادن به ریسمان ها
17. همگام سازی ریسمان ها
18. قفل ها (Mutexes)
19. مفهوم قفل
20. استفاده از قفل ها
21. انواع قفل ها
22. مشکلات رایج در استفاده از قفل ها
23. بن بست (Deadlock)
24. مفهوم بن بست
25. تشخیص بن بست
26. جلوگیری از بن بست
27. مسابقه داده (Race Condition)
28. مفهوم مسابقه داده
29. جلوگیری از مسابقه داده
30. همگام سازها (Semaphores)
31. مفهوم همگام ساز
32. انواع همگام ساز
33. استفاده از همگام سازها
34. متغیرهای شرطی (Condition Variables)
35. مفهوم متغیر شرطی
36. استفاده از متغیرهای شرطی
37. رشته های اتمی (Atomic Operations)
38. مفهوم رشته های اتمی
39. مزایا و معایب رشته های اتمی
40. کتابخانه Pthreads
41. معرفی کتابخانه Pthreads
42. توابع اصلی Pthreads
43. مدیریت ریسمان ها با Pthreads
44. همگام سازی با Pthreads
45. ...