工作中遇到这么一种情况,用一个线程池处理网站报上来的数据,网站报上的数据有一个收集线程放到一个队列里边,用一个信号量限定了队列中数据的数量,一个信号量限定线程池中空闲线程的数量,然后这个线程池在队列中领到任务由另一个线程进行同意管理,在这个线程中调用了sem_getvalue函数来检测两个信号量,当线程池中有空闲线程并且任务队列中有任务时才去激活一个线程,现在出现了这样一个问题,如果在那个任务管理线程中不停的用while循环去调用sem_getvalue检测条件,会造成CPU时间浪费,若果加一个sleep就不能保证时效性