gpt4 book ai didi

c - 多线程 - 每个线程在特定时间后调用一个函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:22 28 4
gpt4 key购买 nike

我希望所有线程(在 Linux 上运行的多线程 C 代码中)在特定时间后调用一个函数。我尝试了 alarm()。它不是线程安全的: Only one SIGALRM generation can be scheduled in this manner. If the SIGALRM signal has not yet been generated, the call shall result in rescheduling the time at which the SIGALRM signal is generated .

有什么方法可以实现这样的功能并保证线程调用该函数并在此时离开当前任务?

最佳答案

你有一个包含其他线程的所有 pthread_t 的数组吗?如果是,则迭代数组并使用 pthread_kill 将信号发送到其他线程。

您可以在主线程或单独的线程中执行此操作。

请注意,在信号处理程序中您可以安全地执行的操作不多。除了 write 之外,没有 I/O,特别是。

关于c - 多线程 - 每个线程在特定时间后调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15078170/

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