用户名
Windows操作系统,一种线程模型,其中ThreadPool与IO完成相关联,每次异步IO完成时都会释放一个线程,然后使用〜released线程来处理IO完成。
虽然linux select可以用于异步IO,但它似乎不支持IO完成/线程池逻辑。
在线程模型之上,是否有任何与IO Completion / ThreadPool等效的Linux?
妖怪
我不知道直接执行此操作的任何方法,但是您可以将select()
循环与自己的线程池结合使用以获得类似的行为。当select()
回报和您检查fd_set
s到看到哪些文件描述符准备好,互推这些描述符来处理一个线程池。您仍然需要一个select()
独立于线程池的主线程来运行循环,以处理I / O事件。
这种方法的大多数复杂性在于如何跟踪select()
每次迭代中的调用中以及线程池本身中需要包含哪些描述符(因为POSIX提供了线程,但没有标准线程池API)。
您可能对使用类似GLib的库感兴趣,该库提供了模块化的主循环,可帮助轮询一组不同的文件描述符以及线程池实现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
编辑于
我来说两句