我有一个程序可以触发Python计时器来生成子进程。一旦程序终止或终止,这些子进程就应该终止。为了做到这一点,我使用了“prctl hack”,它设置了一旦父对象死亡,子对象应该接收哪个信号。我得到的不受欢迎的行为是:即使我的主进程正在运行,孩子们还是会被杀。以下代码重新创建了该问题:from threading import Timer

import time

import os

import subprocess

import ctypes

import signal

def set_pdeathsig():

print("child PID: %d" % os.getpid())

print("child's parent PID: %d" % os.getppid())

prctl = ctypes.CDLL("libc.so.6").prctl

PR_SET_PDEATHSIG = 1

prctl(PR_SET_PDEATHSIG, signal.SIGTERM)

def thread1():

subprocess.Popen(['sleep', 'infinity'], preexec_fn=set_pdeathsig)

time.sleep(10)

print("thread 1 finished")

def thread2():

subprocess.Popen(['sleep', 'infinity'], preexec_fn=set_pdeathsig)

time.sleep(10)

print("thread 2 finished")

print("main thread PID: %d" % os.getpid())

t1 = Timer(1, thread1)

t2 = Timer(1, thread2)

t1.start()

t2.start()

time.sleep(100)

您可以注意到,在线程死之前,sleep进程仍在运行。在计时器线程死后,它各自的子进程也会消亡,即使主线程还活着。在

主线程 子线程死掉_当线程死时,子进程也会死相关推荐

  1. 【EventBus】事件通信框架 ( 发送事件 | 判断发布线程是否是主线程 | 子线程切换主线程 | 主线程切换子线程 )

    文章目录 前言 一.根据不同的线程模式进行不同的线程切换操作 二.完整代码示例 前言 发布线程发布事件之后 , 消息中心需要转发这些事件 , 并执行相应的订阅方法 ; 在转发的过程中 , 需要针对订阅 ...

  2. python threading-单线程 多线程 主线程 子线程 setDeamon join

    python threading-单线程 多线程 主线程 子线程 setDeamon join 单线程 多线程 主线程和子线程 setDaemon() join() 测试多线程下程序运行的时间 创建多 ...

  3. QT 主线程子线程互相传值

    本文实现了主线程给子线程传值.子线程给主线程传值.主线程子线程的互相传值.线程源文件mythread.h..cpp:主线程文件mainwindow.h..cpp;下面程序先从主线程调用子线程,子线程给 ...

  4. linux_主线程子线程退出关系

    我们在一个线程中经常会创建另外的新线程,如果主线程退出,会不会影响它所创建的新线程呢?下面就来讨论一下. 1. 主线程等待新线程先结束退出,主线程后退出.正常执行. 实例代码: #include &q ...

  5. 【Android 异步操作】Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )

    文章目录 一.判定当前线程是否是主线程 二.子线程中执行主线程方法 三.主线程中执行子线程方法 一.判定当前线程是否是主线程 在 Android 中 , 如果要判定当前线程是否是主线程 , 可以使用如 ...

  6. Android ThreadUtil 线程公共类,判断是否在主线程/ 子线程执行 相关操作

    前言:通常,我们写的公共的模块给别人用,但是这个模块又必须在特定的线程中执行. 比如,一个加载网络图片的的方法,需要在子线程中执行. /** * 加载网络图片 */ private void load ...

  7. Android 主线程子线程执行关系

    Android 切换线程的方式[我常用的]     1. Handler.post[切换至主线程]     2. new Thread().start()[切换至子线程] 3. 线程池 ThreadP ...

  8. 多线程经典问题1——主线程子线程交替问题

    提出问题: * 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次.如此循环50次. 分析:这个实际上是非常easy的问题.即子线程r ...

  9. java移动文件导致tomcat死掉_原 netty导致tomcat假死

    一.系统需求: 保证后台系统在大并发下正常处理每一个业务连接请求. 二.运作方式: Netty+tomcat.在tomcat的web.xml配置文件中配置一个Listener类用来在tomcat初始化 ...

最新文章

  1. 3天拆解数据分析全流程!
  2. 扩增子统计绘图3热图:样品相关分析,差异OTU
  3. leetcode 263. 丑数
  4. Workflow WF Reference Links for 2009-03-20
  5. mysql 日志文件 自动_教你自动恢复MySQL数据库的日志文件
  6. 简洁/易用/灵活/高效-RecyclerView适配器封装
  7. 《CCNA学习指南:Cisco网络设备互连(ICND1)(第4版)》——第1章网络功能
  8. BAT会看上哪样的中小公司程序员? 1
  9. 产品体验报告:在行APP分析
  10. dfema规则_DFMEA失效分析简介
  11. 计算机配置怎么造假,骗局揭秘:卖你一台假电脑 再送你一个假鲁大师
  12. python中value的含义_生成的scikit学习决策树中的value属性的含义是什么?
  13. Scrum敏捷开发 —实现多维度碎片化迭代
  14. python子图加标题_python – matplotlib的子图中的行和列标题
  15. python 对图片进行颜色转换
  16. Python非线性回归
  17. CPU100%,怎么快速定位?
  18. 微信小程序开发实战 ②①(网路请求Promise化)
  19. java web打包神器_前端开发人员的桌面应用神器 Electron
  20. java做度量衡换算器_单位换算计算器(度数换算计算器)

热门文章

  1. 采集快手APP的10个经典方法
  2. 工业品微营销时代_做网络营销_原创有价值的文章更容易带来流量 上海添力
  3. python读取Excel指定范围并转为数组
  4. 【独立篇】React UI组件库
  5. 弱网测试:使用netem模拟网络延迟、丢包、损坏、重复、和乱序等网络问题
  6. 质量小议24 -- 帕累托最优
  7. freemind问题合集
  8. 21个免费的UI界面设计工具、资源及网站
  9. 辰颐物语系统(开发、奖励规则)
  10. 织梦CMS仿站概述:快速理清仿站思路