发送信号到pthread以中止睡眠

std*_*all 1 c linux signals pthreads

我有一个pthread函数,它大部分时间都在休眠,usleep() 我希望从主进程向线程发送一个信号来中断睡眠.

问题是我找不到任何准确发送信号的参考 pthread_kill()

usleep()手册页,指出SIGALRM不应与一起使用usleep()

我是否需要使用特定信号,这没关系?

Jen*_*edt 5

线程之间同步的工具不是信号和usleep(或nanosleep),而是pthread_mutex_t和的组合pthread_cond_t.让你的线程等待条件(这可以通过超时完成)并让你的main线程在条件变量上发送"信号".

  • 向线程发送信号会给你带来很多麻烦和头痛.如果你能避免的话,不要这样做.信号是流程之间的工具. (4认同)