加入收藏 | 设为首页 | 会员中心 | 我要投稿 4S站长网 (https://www.4s3.cn/)- 科技、混合云存储、数据迁移、云上网络、数据计算!
当前位置: 首页 > 综合聚焦 > Linux > 正文

如何在linux崩溃期间终止线程?

发布时间:2020-12-30 17:03:38 所属栏目:Linux 来源:互联网
导读:如果你有一个多线程程序( Linux 2.26内核),并且一个线程做了导致段错误的东西,其他线程是否仍会安排运行?其他线程是如何终止的?有人可以解释多线程程序的进程关闭程序吗? 当致命信号传递给线程时,调用do_coredump()或do_group_exit()函数. do_group_exit()

如果你有一个多线程程序( Linux 2.26内核),并且一个线程做了导致段错误的东西,其他线程是否仍会安排运行?其他线程是如何终止的?有人可以解释多线程程序的进程关闭程序吗?

解决方法

当致命信号传递给线程时,调用do_coredump()或do_group_exit()函数. do_group_exit()设置线程组退出代码,然后在退出当前线程之前通过zap_other_threads()通知线程组中的所有其他线程退出. (do_coredump()调用coredump_wait(),类似地调用zap_threads()).

zap_other_threads()为线程组中的每个其他线程发布一个SIGKILL,并使用signal_wake_up()将其唤醒. signal_wake_up()调用kick_process(),它将引导线程进入内核模式,以便它可以在必要时使用IPI1接收信号(例如,如果它在另一个CPU上执行).

1.处理器间中断

(编辑:4S站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读