linux – 如何在pthread中终止睡眠线程?
发布时间:2020-12-14 02:22:27 所属栏目:Linux 来源:网络整理
导读:我有一个睡了很长时间的线程,然后醒来做某事,然后再次睡觉,像这样: while(some_condition){ // do something sleep(1000);} 我怎样才能让这个线程优雅而快速地退出? 我尝试使用pthread_cancel(),但无法取消睡眠线程. 我也试过改变while循环的条件,但是退出
我有一个睡了很长时间的线程,然后醒来做某事,然后再次睡觉,像这样:
while(some_condition) { // do something sleep(1000); } 我怎样才能让这个线程优雅而快速地退出? 我尝试使用pthread_cancel(),但无法取消睡眠线程. 那么,有什么好主意吗? 解决方法
作为睡眠的替代方案,您可以在1000毫秒超时时使用
pthread_cond_timedwait.然后,当您想要退出时,发出条件变量的信号.
这类似于使用wait和notify在C#/ Java中执行此操作的方式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |