1.What kind of strategies we can have for using thread pools?
Create a number of threads at process startup and place them into a pool, where they sit and wait for work.
2.Why the windows uses one to one mapping for the threads while there are many to many available?
Because each kernel thread is actually a different kernel-schedulable entity, multiple threads can run concurrently on different processors. It can achieve significant speedups when migrated from uniprocessors to multiprocessors.
3.Specify the differences between processes and threads?
Both processes and threads are independent sequences of execution. The typical difference is that threads (of the same process) run in a shared memory space, while processes run in separate memory spaces.
Threads are an operating environment feature, rather than a CPU feature (though the CPU typically has operations that make threads efficient).