1⟩ Explain advantages of multithreading?
Some advantages include:
If a thread gets a lot of cache misses, the other thread(s) can continue, taking advantage of the unused computing resources, which thus can lead to faster overall execution, as these resources would have been idle if only a single thread was executed.
If a thread cannot use all the computing resources of the CPU (because instructions depend on each other's result), running another thread can avoid leaving these idle.
If several threads work on the same set of data, they can actually share their cache, leading to better cache usage or synchronization on its values.