logoalt Hacker News

gertop • today at 3:32 AM • 1 reply • view on HN

I think you're confusing userland threading (also known as green threads) with a regular thread pool implementation (that uses regular OS threads).

Because most web servers use OS threads. Nginx, Apache, litespeed, they all spin up `core count` threads but they can all work single threaded just fine as well.


Replies

creata • today at 4:26 AM

No, I mean that Tokio, Go, etc., were built with general-purpose web servers in mind, and they decided that lightweight threads were necessary for that purpose because OS threads had too much overhead to be used per-request.

NGINX uses a state machine per task, which as far as I know is kind of what Rust's async functions end up desugaring to.