我从主线程中生成了多个线程。所有这些线程都有相同的启动例程。该例程包含例程本地的计数器。我想定期打印这个计数器。我如何实现这一目标?
我知道我们可以使用条件变量在不同线程之间进行通信。但我不想阻塞我的任何线程并让它们等待特定信号,简而言之,计数器必须不断更新。
总结一下,这就是我想要实现的目标:
多个线程正在运行,不断更新它们自己的计数器。
SIGALRM 已注册,它会定期通知每个线程打印其计数器
最佳答案
只需使用一个全局变量作为 SIGALRM 的计数器,在处理程序中更新,然后在例程中,检查全局计数器值是否更改,打印局部计数器并将全局计数器的值保存到局部变量
关于c - 接收信号时的线程通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49810814/