gpt4 book ai didi

c++ - 在 Linux 上中止线程 sleep

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:09 27 4
gpt4 key购买 nike

我是 Linux 开发新手,所以我不知道如何解决问题。

在我的 main 中,我生成了许多工作线程,每个工作线程都执行其任务并休眠几秒钟。

在某些情况下我必须终止。我需要避免等待每次 sleep 终止,所以我想向每个线程发送一个信号以中断 sleep (在我的例子中是 nanosleep)并终止 threadproc 循环。

我阅读了很多关于 pthread_kill 的文档,但是当我向线程发送例如 SIGUSR1 时,进程以异常方式终止。

有人可以指出解决方案吗?

非常感谢!!!

Edit: Solved, the solution was pthread_cond_timedwait and pthread_cond_signal.

最佳答案

我不知道你的代码的细节,但它听起来像是条件变量的工作:cs.nmsu.edu/~jcook/Tools/pthreads/pthread_cond.html – 加利克

我刚刚实现了基于 pthread_cond_signalpthread_cond_timedwait 的解决方案,我确认它是否有效!!! – 大胆的魔鬼

关于c++ - 在 Linux 上中止线程 sleep ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35120686/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com