I'm trying to learn more about the async abstractions used by this codebase I'm working on.
I'm reading Folly
's documentation for two async executor pools in the library, IOThreadPoolExecutor
for io
bound tasks, and CPUThreadPoolExecutor
for cpu
bound tasks (https://github.com/facebook/folly/blob/master/folly/docs/Executors.md).
I'm reading through the descriptions but I don't understand the main difference. It seems like IOThreadPoolExecutor
is built around event_fd
and epoll
loop and CPUThreadPoolExecutor
uses a queue and semaphore.
But that doesn't tell me that much about the benefits and trade-offs.