4 ms·
Web servers are notoriously easy to implement with message passing / fork. Threading is a particularly bad model for that case. Games on the other hand? Oh yea
by packetlost 2y ago
Web servers are notoriously easy to implement with message passing / fork. Threading is a particularly bad model for that case.
Games on the other hand? Oh yeah, you definitely need threads for that.
It's important to note that "multithreading" specifically means shared-memory model of parallel processing. Games are more of an exception than the rule when it comes to being well suited to shared memory.
- andy24 2y agoIsn’t Nginx multithreaded rather than multiprocess? I’m not an expert in web stuff but it’s always felt intuitively that worker threads map nocely into typical web server workloads. Also, any UI app should basically be multithreaded to prevent interface hiccups.
- packetlost 2y agoNo, nginx uses a fixed number of worker processes and communicates primarily through explicit shared memory and message passing. Threading works ok, but there's rarely much shared state so the fork and pipe / she model wins cleaner and more secure. As for UIs: maybe! I'm sure it depends, but this isn't an area I know a ton about
- andy24 2y agoInteresting perspective, I’ve never been thinking about this problem in terms of whether workers need shared memory space. Thank you!