This is an extension to my previous question
How does blocking mode in unix/linux sockets works?
What I gather from Internet now, all the process invoking bl
First of all, you have a misconception:
Blocking calls are not "busy waiting" or "spin locks". Blocking calls are sleepable -- that means the CPU would work on other task, no cpu are wasted.
On your question on blocking calls
Blocking calls are easier -- they are easy to understand, easier to develop, easier to debug.
But they are resource hog. If you don't use thread, it would block other clients; If you use thread, each thread would take up memory and other system resource. Even if you have plenty of memory, switching thread would make the cache cold and reduce the performance.
This is a trade off -- faster development and maintainability? or scalability.