Linux下怎么样实现WaitForMultipleObjects接口,求指导

C++语言 码拜 8年前 (2016-05-13) 1903次浏览
在windows,可以使用WaitForMultipleObjects接口监听多个Event事件,只要监听的事件中有一个发生了,WaitForMultipleObjects接口就返回,可以通过返回值确定哪个事件发生了,然后进行相应的处理
但是linux下貌似没有相似的接口,网上搜了下,给的最多的建议:
1,起多个线程,每个线程监听一个信号量来实现同步,但是这样监听的事件假如多到上千个的话,就要起上千个线程,这样线程切换的性能就已经开销很大了,不想用这种方法
2,一个while循环里轮询监听多个信号量,一旦有某个信号量被置位,就break出来,进行相应的处理,但是这样实现的话没有达到本人期望的阻塞等待事件触发的效果,实际上就是上次本人在不断遍历信号量。
个人期望实现如下:linux下阻塞等待多个事件,只要其中一个事件被触发,接口返回,根据返回值可以知道哪个事件被触发了,然后进行相应的处理
问一下linux怎么样实现本人期望的这种形式,求指导
解决方案

40

poll函数,本人处理

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Linux下怎么样实现WaitForMultipleObjects接口,求指导
喜欢 (0)
[1034331897@qq.com]
分享 (0)