【0917 | Day 32】进程之间的数据隔离问题/守护进程/terminate
时间:2019-09-17
本文章向大家介绍【0917 | Day 32】进程之间的数据隔离问题/守护进程/terminate,主要包括【0917 | Day 32】进程之间的数据隔离问题/守护进程/terminate使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
进程之间的数据隔离问题
from multiprocessing import Process
import time
x = 0
def task():
global x
x = 100
print('子进程的x修改为了{}'.format(x))
if __name__ == '__main__':
p = Process(target=task)
p.start()
time.sleep(5)
print(x)
守护进程
守护进程会随着主进程的结束而结束。
由主进程创建守护进程:
- 守护进程会在主进程代码执行结束后就终止
from multiprocessing import Process
import time
def foo():
print('守护进程 start')
time.sleep(5)
print('守护进程 end')
p = Process(target=foo)#第三秒的时候主进程结束了没执行到这一步,不报错
p.start()
if __name__ == '__main__':
p = Process(target=foo)
p.daemon =True # 把这个子进程定义为了守护进程,
p.start()
time.sleep(2)#子进程还没有结束,主进程结束了强制子进程提前结束
print('主')
- 守护进程内无法再开启子进程,否则抛出异常
from multiprocessing import Process
import time
def foo():
print('守护进程 start')
time.sleep(2)
print('守护进程 end')
p = Process(target=foo)
p.start()
if __name__ == '__main__':
p = Process(target=foo)
p.daemon =True # 把这个子进程定义为了守护进程
p.start()
time.sleep(3)
print('主')
#报错:AssertionError: daemonic processes are not allowed to have children
terminate方法
from multiprocessing import Process,current_process
import time
def foo():
print('进程 start')
# print('--------------------- ',current_process().name)
time.sleep(50)
print('进程 end')
if __name__ == '__main__':
p = Process(target=foo)
p.start()
time.sleep(0.45)#start比terminate慢大约0.45秒
p.terminate() # 给操作系统发了一个立即终止请求
print(p.is_alive()) # True
p.join()
print(p.is_alive()) # False
print('主')
#进程 start
#True
#False
#主
原文地址:https://www.cnblogs.com/fxyadela/p/11532152.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 利用Sql处理MR栅格数据
- Netty组件之Channel注册
- 使用 kubeadm 安装单 master kubernetes 集群
- 垃圾回收算法(4)-复制算法
- Digital-Signature-Hijack:一款针对数字签名劫持的PowerShell脚本
- 使用TensorFlow物体检测模型、Python和OpenCV的社交距离检测器
- 基于OpenCV和Tensorflow的深蹲检测器
- BBPress未经身份验证的提权漏洞分析
- 开源日志管理系统Graylog之Sidecar功能实践
- CentOS-AltArch-7(ARM版)下源码编译MySQL5.7.31
- 用BurpSuit的Burpy插件搞定WEB端中的JS加密算法
- CentOS7下安装文档协作工具Confluence7.2.1
- caret包进行机器学习
- 容器化Go应用--基础镜像的未知时区问题
- 写给自己的Object和Function的3个灵魂拷问