In the past, a common drawback of NGINX's single thread event-based architecture was when a heavy operation needed to be processed and the event cycle would get stuck waiting for that operation to complete. Events generally consist of anything from timeouts, socket availability notifications, or error messages. NGINX processes these events one by one in a single continuous thread, so if one event takes a significantly long time to complete it slow the whole process.
Thread pools, available in version R7 or higher, are a way to fork heavy operations without stalling the event-handling cycle. NGINX worker processes can offload heavy operations to a pool of asynchronous wrappers (threads) and these wrappers then complete the task while the worker receives more incoming events.
To read more about thread pools in detail and how they work, check out NGINX's blog on the subject.
Register for an NGINX training course to receive practical application on subjects like thread pools and more!