【发布时间】:2021-01-03 10:37:34
【问题描述】:
有没有办法从它的线程中杀死进程?我有一个启动线程的进程,该进程等待来自终端的输入。我的要求是从线程中终止进程。
场景:线程实际上运行一个计时器来确定主进程是否空闲(即终端没有输入)一段时间,然后我希望线程终止进程。
【问题讨论】:
-
exit();应该终止进程。 -
哪种语言,C 或 C++?它们是不同的语言。例如,C++ 有
std::thread而 C 没有。请酌情更新您的语言标签。 -
这真的取决于进程的能力。如果它注册了任何atexit/on_exit 函数以及这些函数的行为方式。
-
我要补充一点,我记得在 *nix 系统上,您至少可以向进程发送一个信号,该信号可以在不调用任何 atexit/on_exit 函数的情况下终止进程。可以肯定的是,您可以从进程中调用一个特殊的终止函数,以绕过信令开销。希望有人会在这里提出更具体的内容,或者您会在进一步的研究过程中找到它。
-
@ThomasMatthews:最好是 C++。
标签: c++ linux multithreading process