gpt4 book ai didi

c++ - 与 kill 一起发送到父线程的信号是否保证在下一条语句之前得到处理?

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

好吧,如果我在 Linux 上的子线程中运行(如果重要的话使用 pthreads),我运行以下命令

kill(getpid(), someSignal);

它将给定的信号发送给当前线程的父级。

我的问题:是否保证在 kill() 之后的语句之前,父进程会立即获取 CPU 并处理信号(如果是 SIGKILL 则终止应用程序,如果是其他信号则执行其他任何操作) 运行了吗?或者是否有可能 - 甚至可能 - kill() 之后的任何命令都将在父线程处理信号之前运行?

最佳答案

不,不能保证。

一般来说,除非您使用显式同步机制(例如,phtread_mutex 或信号量),否则您不能对单独线程(或进程)中发生的事件的时间做出任何假设。

在多 CPU(或多核)系统上尤其如此,其中多个线程可以在不同的 CPU 上同时运行,但即使在单 CPU 系统上也无法保证。

关于c++ - 与 kill 一起发送到父线程的信号是否保证在下一条语句之前得到处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2702918/

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