I\'ve been trying to learn about semaphores and thread synchronization by going through some classical problems like producer-consumer problem and dining philosopher\'s prob