<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Jul 3, 2016 at 5:13 AM, Amos Shapira <span dir="ltr"><<a href="mailto:amos.shapira@gmail.com" target="_blank">amos.shapira@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Yes I know it's possible to fork multiple processes with one thread in each and all that jazz.<div><br></div><div>I'm asking in the context of Erez' response - if he runs single-threaded code on a multiprocessor hardware, how would he take advantage of more than one processor core?</div><div><br></div></div></blockquote><div><br></div><div>It sounds as if from some reason the term 'single threaded' has been used throughout this discussion while in fact the discussion, IMHO, was actually about 'event based' as the connection processing mechanism of the servers. If you replace 'single threaded' with 'events based' and leave the assumption of 'just a single thread' out (which doesn't necessarily mean 'one thread per connection'), you can then realize that you can use event based servers... with multiple threads - one per each CPU core, and then you're not limited to one core's power. Some servers are even smart enough to figure out the right number automatically.... <a href="http://nginx.org/en/docs/ngx_core_module.html#worker_processes" target="_blank">http://nginx.org/en/docs/ngx_core_module.html#worker_processes</a> (which happens to be my preferable web server for many years now).<br><br></div><div>And... you can always "why not write an Nginx module in C?" [1]<br></div><div><br></div><div>-- Shimi<br></div><div><br>[1] <a href="https://www.youtube.com/watch?v=bzkRVzciAZg">https://www.youtube.com/watch?v=bzkRVzciAZg</a> - please don't take this as if I agree with every word mentioned there; it's just for the fun of it, and it's kind of on-topic.<br><br></div></div></div></div>