Strategies
Single process, single thread, serialized
- simplest implementation, worst performance
- perfectly fine for low traffic sites
Multiple processes, single serialized thread / process
- Apache web server model
- expensive (context switching, process state, …)
Multithreaded [and multiprocess]
- complex synchronization primitives needed
- thread creation/destruction vs. thread pool management
Event driven, asynchronous I/O
- eliminates context switch overhead, better memory mgmt
- very complex and delicate program flow