Simple and Advanced:
1. Explain the difference between Mutex, Conditional Variable and Semaphore, Give the difference with following points,
A) Their Internal working.
B) Practical real life example of each one.
C) Selection criteria ( When do you select the Mutex, when CV and when Semaphore)
D) What are the concurrent problems that each one solves.
E) Which one is faster then other [Mutex or Semaphore]
F) Thread Lock and Unlock context.
2. How would you pinned an individual thread to a given CPU. and why would you ever choose to do that, what forces you to do this. Give practical scenarios for this.
3. Explain the difference between thread local queue and shared queue approach for multi threaded design. Which one would be preferred in which cases. Advantage and downside of each one. Write an article on this and give some detailed thought on this subject.