I know that asynchronous socket programming is more scalable than synchronous.
But there is one thing I don't really understand about it:
If your event loop should be non blocking, how can you delegate time consuming work to another thread without blocking? A work queue normally needs a mutex for protection. I know there are lock free queues but is this how its done? Can someone please give a little concept idea of this thing?