首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找具有操作系统调度器支持的Linux线程池api

寻找具有操作系统调度器支持的Linux线程池api
EN

Stack Overflow用户
提问于 2012-06-04 17:39:36
回答 1查看 889关注 0票数 6

我正在寻找在Linux中提供与Win32线程池相同级别的内核调度器支持的线程池抽象。具体来说,我感兴趣的是找到一个线程池来维护一定数量的正在运行的线程。当运行池线程阻塞I/O时,我希望线程池足够聪明以启动另一个线程运行。

有人知道linux有这种情况吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-04 21:45:26

如果没有操作系统的支持,你真的无法做到这一点。没有一个很好的方法来判断线程在I/O上被阻塞了,最后你不得不在每次操作之前原子地增加一个计数器,而每次操作之后,计数器可能会被阻塞和减少。然后,您需要一个线程来监视该计数器,并在超过零的情况下创建一个额外的线程。(如果线程空闲时间超过一秒左右,则移除它们。)

一般来说,这是不值得的努力。这只在Windows上运行得很好,因为它是"Windows方式“,而Windows是从底层构建的。对于Linux,您应该使用epollboost::asio。使用"Linux方式“的东西,而不是试图使Windows方式在非Windows操作系统上工作。

您可以编写自己的包装器,在Windows上使用IOCP,在Linux上使用epoll,等等。但它们已经存在了,所以你不必费心。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10885605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档