Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 多线程-每个线程在特定时间后调用函数_C_Linux_Multithreading_Signals_Alarm - Fatal编程技术网

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

C 多线程-每个线程在特定时间后调用函数,c,linux,multithreading,signals,alarm,C,Linux,Multithreading,Signals,Alarm,我希望所有线程(在Linux上运行的多线程C代码中)在特定时间后调用函数。我试过报警()。它不是线程安全的:。有什么方法可以实现这样的功能并保证线程会调用该函数并在此时离开其当前任务吗?您是否有一个包含其他线程的所有pthread\t的数组?如果是这样,在数组上迭代并使用pthread\u kill将信号发送给其他线程 您可以在主线程或单独的线程中执行此操作 请注意,在信号处理程序中,您不能安全地执行太多操作。没有I/O,除了写入,尤其是。您所说的时间范围是什么。有多少线程,它们在做什么。你也许

我希望所有线程(在Linux上运行的多线程C代码中)在特定时间后调用函数。我试过报警()。它不是线程安全的:。

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

您是否有一个包含其他线程的所有
pthread\t
的数组?如果是这样,在数组上迭代并使用
pthread\u kill
将信号发送给其他线程

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


请注意,在信号处理程序中,您不能安全地执行太多操作。没有I/O,除了写入,尤其是。

您所说的时间范围是什么。有多少线程,它们在做什么。你也许可以接近这一点,但可以保证,不是真的。线程正在运行一些openmp任务。我想打断他们目前的工作,让他们做些别的事情,然后再回来工作。大约100条线。我可以稍后再考虑确切的时间。有什么办法吗?距离有多近?在一段确切的时间后是否需要中断它们?也许一个“工作完成”的柜台就足够了。@从旭:你能再解释一下吗?怎么用?