看起来Linux没有实现pthread_suspend和pthread_continue,但我确实需要它们。
我尝试过使用cond_wait,但速度太慢了。这些线程执行的工作大多在50微秒内完成,但有时会执行超过500毫秒的任务。cond_wait的问题有两个。第一,互斥锁需要占用与微秒级别执行时间相当的时间,而且我不需要锁定。第二,我有很多工作线程,不想为每个线程都创建一个条件变量。
我知道哪个线程正在等待哪项工作,可以直接pthread_continue那个线程。线程知道何时没有更多的工作并且可以轻松地pthread_suspend自己。这样不需要锁定,避免了锁竞争,速度也更快。问题是...没有pthread_suspend或者_pthread_continue。
有什么想法吗?