diff --git a/src/data/roadmaps/server-side-game-developer/content/select@5-5toy2CblZPCV9d5QPEo.md b/src/data/roadmaps/server-side-game-developer/content/select@5-5toy2CblZPCV9d5QPEo.md index e69de29bb..eaa2d32a0 100644 --- a/src/data/roadmaps/server-side-game-developer/content/select@5-5toy2CblZPCV9d5QPEo.md +++ b/src/data/roadmaps/server-side-game-developer/content/select@5-5toy2CblZPCV9d5QPEo.md @@ -0,0 +1,13 @@ +# select + +**select** is a multiplexing system call in Linux used for monitoring multiple file descriptors +to check if they are ready for I/O operations. It is commonly used in server-side game +development for handling multiple connections asynchronously. However, `select` has +limitations, as it scans all file descriptors linearly, making it inefficient for handling +a large number of concurrent connections. Despite its drawbacks, it remains useful for +simpler applications or legacy systems. Modern alternatives like `epoll` or `kqueue` offer +better performance and scalability. + +Resources: +- [@documentation@Linux select API](https://man7.org/linux/man-pages/man2/select.2.html) +- [@article@select vs epoll vs poll](https://devarea.com/linux-io-multiplexing-select-vs-poll-vs-epoll/) \ No newline at end of file