linux pthread_suspend

joh*_*ash 9 c linux pthreads

看起来linux并没有实现pthread_suspend并继续,但我真的需要它们.

我试过cond_wait,但是太慢了.正在进行线程化的工作主要在50us内执行,但偶尔会执行500ms以上.cond_wait的问题是双重的.互斥锁定与微秒执行的时间相当,我不需要锁定.其次,我有很多工作线程,当他们需要被唤醒时,我真的不想制作N个条件变量.

我确切地知道哪个线程正在等待哪个工作,并且可能只是pthread_continue该线程.一个线程知道什么时候没有更多的工作,并且可以轻松地pthread_suspend自己.这将不使用锁定,避免踩踏,并且更快.问题是......没有pthread_suspend或_continue.

有任何想法吗?

jwe*_*ich 7

使线程等待特定信号.

使用pthread_sigmasksigwait.

  • 我们对这种方法进行了测试,结果发现我们能够比使用pthread_cond_wait更快地睡眠和唤醒线程40倍. (3认同)
  • 拜托,你能分享一下你的考试吗?人们可能从中受益. (3认同)