我使用pthread_create创建几个子线程。一次,主线程要杀死所有子线程,否则将出现段故障。我应该使用哪个功能来完成此操作?我从谷歌搜索答案,并得到了类似pthread_kill的功能。但是我不知道应该向子线程发送哪个信号来杀死它们。我的运行环境是RHEL
5.4,编程语言是C。
可以使用来“取消”线程pthread_cancel
。但是,这通常不是最佳做法,尽管在SEGFAULT这样的极端情况下,可能会认为这是一种合理的方法。
问题内容: 如何java.lang.Thread用Java 杀死A ? 问题答案: 有关他们为何不赞成使用Sun的内容,请参见此主题。它详细介绍了为什么这是一种不好的方法,以及通常应该采取什么措施才能安全地停止线程。 他们建议的方式是使用共享变量作为标志,要求后台线程停止。然后可以由另一个请求线程终止的对象来设置此变量。
问题内容: 问题答案: 调用stop的替代方法是使用中断向线程发出信号,告知你希望它完成其工作。(这假设你要停止的线程行为良好,如果它在抛出异常后立即通过吃掉它们而忽略了InterruptedException,并且不检查中断状态,那么你将返回使用stop()。) 下面是一些代码,我写的一个答案,一个线程的问题在这里,它的线程中断,将如何工作的例子: 要注意的一些事情: 中断原因并立即抛出,否则你
问题内容: 例如从bash: 仅杀死父进程。 问题答案: 当您将 负 PID传递给时,它实际上会通过该(绝对)数字将信号发送到过程 组 。您可以在Python中完成与之等效的操作。
问题内容: 我有一个简单的程序,可以测试当模块不存在时是否能够引发异常。 有时我喜欢在另一个模块中使用此代码: 令人惊讶的是,当我以这种方式运行它时,它不起作用: 这种情况在Ubuntu中发生,并且在干净的CentOS 7.3中也发生。 问题答案: 您正在遇到“导入锁定”。 该文档提到了线程期间导入的限制,您违反了第一个限制(强调我的意思): 虽然导入机制是线程安全的,但是由于提供线程安全的方式存
问题内容: 我相信主线程不能在子线程之前死亡。但是有什么办法可以检查吗?我在下面写了一个简单的程序。有人能证明它几乎把理论放在一边吗? 经过詹姆斯的建议。我尝试了以下程序。 问题答案: 从http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html: Java虚拟机将继续执行线程,直到发生以下任何一种情况: 已调用类Runtime的退
问题内容: 使用shelljs创建一个子进程 杀死父进程后,子进程仍在运行.. 问题答案: 如果您可以使用node的内置,则可以向子进程发送信号: 这样做的好处是,主进程应该一直徘徊,直到所有子进程都终止。