作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
看起来 linux 没有实现 pthread_suspend 并继续,但我真的需要 em。
我试过cond_wait,但是太慢了。被线程化的工作大多在 50us 内执行,但偶尔会执行超过 500ms。 cond_wait 的问题有两个。互斥锁定所花费的时间与微秒级执行时间相当,我不需要锁定。其次,我有很多工作线程,我真的不想在需要唤醒它们时创建 N 个条件变量。
我确切地知道哪个线程正在等待哪个工作并且可以 pthread_continue 该线程。一个线程知道什么时候没有更多的工作并且可以很容易地 pthread_suspend 自己。这将不使用锁定,避免踩踏,并且更快。问题是……没有 pthread_suspend 或 _continue。
有什么想法吗?
最佳答案
让线程等待一个特定的信号。
使用pthread_sigmask和 sigwait .
关于c - Linux pthread_suspend,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2994216/
看起来 linux 没有实现 pthread_suspend 并继续,但我真的需要 em。 我试过cond_wait,但是太慢了。被线程化的工作大多在 50us 内执行,但偶尔会执行超过 500ms。
我是一名优秀的程序员,十分优秀!