There is nothing fundamentally new described in the blog post, although pinning threads to core is almost never the default operation mode (though many popular servers expose an option for turning this one).<p>As someone else stated in another post, SO_REUSEPORT and accept4() is best, all things considered, way to accept connections across multiple threads. Again, most modern servers support this by default, if supported by the underlying operating system (e.g nginx).<p>By the way, Aerospike accepts new connections in a single thread and then directly adds the socket FD to one of the i&#x2F;o threads (round-robbing selection scheme) directly using e.g epoll_ctl(fd, EPOLL_CTL_ADD, ..).<p>See <a href="http:&#x2F;&#x2F;blog.tsunanet.net&#x2F;2010&#x2F;11&#x2F;how-long-does-it-take-to-make-context.html" rel="nofollow">http:&#x2F;&#x2F;blog.tsunanet.net&#x2F;2010&#x2F;11&#x2F;how-long-does-it-take-to-ma...</a> for costs of context switching, and performance improvement when pinning threads to cores  (it&#x27;s quite impressive). Also, note that according to the author, on average, a context switch is 2.5-3x more expensive when using virtualization.<p>You may also want to read <a href="https:&#x2F;&#x2F;medium.com&#x2F;software-development-2&#x2F;high-performance-services-using-coroutines-ac8e9f54d727#.ho0s7q28b" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;software-development-2&#x2F;high-performance-s...</a>  -- it&#x27;s been a long time since I wrote this, but it describes how one can deal with asynchronous I&#x2F;O and other operations that may block a thread.