Java-API简析_java.lang.Process类(基于 Latest JDK)(浅析源码)

news2024/10/6 12:28:25

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/131714752
出自【进步*于辰的博客】

因为我发现目前,我对Java-API的学习意识比较薄弱,需要慢慢习惯使用Java-API,乃至剖析源码来提升自己的源码阅读能力和编码素质。
大家如果需要Java-API文档,我上传了【https://download.csdn.net/download/m0_69908381/87691693】。

文章目录

  • 1、概述
  • 2、方法摘要
    • 2.1 abstract void destroy()
    • 2.2 abstract int exitValue()
    • 2.3 abstract InputStream getErrorStream()
    • 2.4 abstract InputStream getInputStream()
    • 2.5 abstract OutputStream getOutputStream()
    • 2.6 abstract int waitFor()

1、概述

·public abstract class Process extends Object

ProcessBuilder.start()Runtime.exec() 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息。Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。

创建进程的方法可能无法针对某些本机平台上的特定进程很好地工作,比如,本机窗口进程,守护进程,Microsoft Windows 上的 Win16/DOS 进程,或者 shell 脚本创建的子进程没有自己的终端或控制台。它的所有标准 io(即 stdin,stdout,stderr)操作都将通过三个流 (getOutputStream(),getInputStream(),getErrorStream()) 重定向到父进程。父进程使用这些流来提供到子进程的输入和获得从子进程的输出。因为有些本机平台仅针对标准输入和输出流提供有限的缓冲区大小,如果读写子进程的输出流或输入流迅速出现失败,则可能导致子进程阻塞,甚至产生死锁。

当没有 Process 对象的更多引用时,不是删掉子进程,而是继续异步执行子进程。

对于带有 Process 对象的 Java 进程,没有必要异步或并发执行由 Process 对象表示的进程。

从以下版本开始:
JDK1.0
另请参见:
ProcessBuilder、Runtime.exec(String\[\], String\[\], File)

2、方法摘要

2.1 abstract void destroy()

杀掉子进程。
说明:
先看源码。
在这里插入图片描述
注译:杀死子进程。此Process对象表示的子进程是否被强制终止取决于实现。

2.2 abstract int exitValue()

返回子进程的出口值。
说明:
先看源码。
在这里插入图片描述
注译:

返回:
此Process对象表示的子进程的退出值。按照惯例,0表示正常终止。
抛出:
IllegalThreadStateException——如果这个Process对象表示的子进程还没有终止

2.3 abstract InputStream getErrorStream()

获得子进程的错误流。
说明:
先看源码。
在这里插入图片描述
注译:
返回连接到子进程的错误输出的输入流。流通过管道从process对象表示的进程的错误输出中获取数据。

如果子进程的标准错误已使用ProcessBuilder重定向。ProcessBuilder.redirectError()ProcessBuilder.redirectErrorStream()。那么这个方法将返回一个空输入流

2.4 abstract InputStream getInputStream()

获得子进程的输入流。
说明:
先看源码。
在这里插入图片描述
注译:
返回连接到子进程的正常输出的输入流。流通过管道从这个process对象表示的进程的标准输出中获取数据。

如果子进程的标准输出已使用ProcessBuilder重定向。ProcessBuilder.redirectOutput()则此方法将返回一个空输入流

否则,如果使用ProcessBuilder重定向了子进程的标准错误。ProcessBuilder.redirectErrorStream()则此方法返回的输入流将接收合并的标准输出和子进程的标准错误。

2.5 abstract OutputStream getOutputStream()

获得子进程的输出流。
说明:
先看源码。
在这里插入图片描述
注译:
返回连接到子进程的正常输入的输出流。流的输出通过管道连接到由此process对象表示的进程的标准输入。

如果子进程的标准输入已使用ProcessBuilder重定向。 ProcessBuilder.redirectInput()则此方法将返回空输出流

2.6 abstract int waitFor()

导致当前线程等待,如果必要,一直要等到由该 Process 对象表示的进程已经终止。
说明:
先看源码。
在这里插入图片描述
注译:
如果需要,使当前线程等待,直到由此process对象表示的进程终止。如果子进程已经终止,此方法将立即返回。如果子进程尚未终止,则调用线程将被阻塞,直到子进程退出。

返回:
此Process对象表示的子进程的退出值。按照惯例,0表示正常终止。
抛出:
InterruptedException—如果当前线程在等待时被另一个线程中断,则等待结束并抛出 InterruptedException。

本文持续更新中。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/751881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考A计划-系统集成项目管理工程师--项目质量管理-尾

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

【FAQ】API6低代码开发问题汇总

参考文档: 低代码开发参考文档: 文档中心:使用低代码进行开发 基于景区模板开发元服务: 文档中心:模板简介 使用API6低代码开发遇到的问题汇总情况如下: 1、低代码环境下,如何实现box-shadow阴影效果的配置&#…

第五章:DeepLabV1——深度卷积神经网络和全连接条件随机场的语义图像分割

0.摘要 深度卷积神经网络(DCNN)在图像分类和目标检测等高级视觉任务中表现出最先进的性能。本研究结合了DCNN和概率图模型的方法,用于解决像素级分类的任务(也称为“语义图像分割”)。我们发现,DCNN最后一层…

sping boot与JPA结合使用

1、pom.xml文件内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:/…

SOPC之NiosⅡ系统(二)

常用NIOS Ⅱ组件概括 目录 1.时钟组件 2.Nios Ⅱ处理器 2.1 Main 2.2 Vector 2.3 Caches and Memory Interfaces 2.4 Arithmetic Instructions 2.5 JTAG Debug 3.RAM组件 4.System ID组件 5.JTAG UART组件 6.PIO组件 6.1 基础设置(Basic Settings) 6.2 输出寄存器…

应用于智能眼镜上实现检测功能的距离传感芯片

随着智能穿戴设备的发展&#xff0c;各种新型的电子产品不断被研发出来&#xff0c;诸如智能头盔、智能手表、智能手环等等&#xff0c;智能眼镜就是其中一种&#xff0c;国内华为、小米相继推出智能产品。 智能眼镜具有和智能耳机相似的功能&#xff0c;不仅保留眼镜本身功能…

Twitter迎来史上最大危机,超级App能成为其救命武器吗?

前段时间闹得沸沸扬扬的“马扎大战”再出新剧情&#xff0c;继“笼斗”约架被马斯克妈妈及时叫停之后&#xff0c;马斯克在7月9日再次向扎克伯克打起嘴炮&#xff0c;这次不仅怒骂小扎是混蛋&#xff0c;还要公开和他比大小&#xff1f;&#xff01;&#xff01;此番马斯克的疯…

应用开发环境搭建

应用开发环境搭建 1、安装JDK linux上传安装包解压缩设置环境变量判断JDK是否安装成功 2、nginx下载选择Stable version版本下载到本地&#xff08;该版本为Linux版本&#xff09;&#xff0c;下载完成后直接在本地解压后放入linux系统中下载完成后&#xff0c;安装Nginx&#…

android studio 使用lib中的framework.jar编译

本文参考了网上搜索到的内容总结了一下&#xff0c;感谢大神们的无私奉献。 在App中的build.gradle中的android{}下添加&#xff1a; android{...gradle.projectsEvaluated {tasks.withType(JavaCompile) {Set<File> fileSet options.bootstrapClasspath.getFiles()Li…

想知道音频转文字怎么弄吗?看完这篇文章你就懂了

小伙伴们&#xff0c;你们有没有遇到过这样的情况&#xff1a;听到了一段有趣或重要的音频&#xff0c;但却无法方便地保存下来或与他人分享&#xff1f;别担心&#xff0c;现在有很多免费的音频转文字软件app可以帮助我们解决这个问题。不过&#xff0c;这些音频转文字软件app…

S32K系列MCU介绍和资料搜集

1. S32K系列微控制器概述 S32K系列微控制器&#xff0c;是NXP推出的专门面向汽车电子和工业应用场合的微控制器。基于ArmCortex-M系列的可扩展、低功耗微控制器&#xff0c;获得了AEC-Q100认证&#xff0c;具有高级功能安全、信息安全和软件支持&#xff0c;适用于工业和汽车A…

进程间通信之匿名管道(pipe)

文章目录 前言管道管道的创建管道的使用单进程使用管道进行通信多进程使用管道进行通信关闭管道的读端/写端 总结 前言 管道分为匿名管道和命名管道&#xff0c;匿名管道只能在有共同祖先的(有亲缘关系)进程中使用&#xff0c;而命名管道可以在任意进程中使用&#xff0c;以下…

【youcans动手学模型】目标检测之 OverFeat 模型

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【youcans动手学模型】目标检测之 OverFeat 模型 1. OverFeat 卷积神经网络模型1.1 论文摘要1.2 技术背景1.3 基本方法模型设计多尺度分类滑动窗口&#xff08;Sliding window&#xff09;定位&#…

ACL—访问控制列表

目录 ACL的分类&#xff1a; 配置 配置基础ACL &#xff1a; 例一&#xff1a; 例二&#xff1a; 配置高级ACL &#xff1a; 例一&#xff1a; 例二&#xff1a; ACL—访问控制列表 配置了ACL的网络设备根据事先制定号的规则&#xff0c;然后对经过该设备的流量按照对应的规…

访问者模式:灵活处理对象结构

访问者模式&#xff1a;灵活处理对象结构 在软件开发中&#xff0c;我们经常会遇到处理复杂对象结构的情况。对象结构由多个不同类型的对象组成&#xff0c;而每个对象都可能具有不同的行为。此时&#xff0c;访问者模式可以派上用场。访问者模式是一种行为设计模式&#xff0…

接口的幂等性如何设计

前言 所谓幂等: 多次调用方法或者接口不会改变业务状态&#xff0c;可以保证重复调用的结果和单次调用的结果一致。 我们在开发中主要操作也就是CURD,其中读取操作和删除操作是天然幂等的&#xff0c;我们所关心的就是创建操作、更新操作。 创建操作一定是非幂等的因为要涉及…

JVM包含哪几部分?JVM内存模型?线程的生命周期? 对Spring AOP的理解?布隆过滤器

目录 1. JVM包含哪几部分2. JVM内存模型3. 双亲委派模型4. Java内存模型5. Serializable接口为什么需要定义serialVersionUID常量6. 线程的生命周期7. 什么是MVC8. volatile关键字的理解9. 对Spring AOP的理解10. 布隆过滤器 1. JVM包含哪几部分 JVM由三部分组成&#xff1a;类…

WalkRE2019--构面流程

1、手动圈图 选中面层中的一般房屋面&#xff0c;双击&#xff0c;鼠标变成十字光标后&#xff0c;开始在图上圈出一个闭合形状。如下&#xff1a; 如上&#xff0c;完成一个一般房屋面的绘制。 2、加工菜单栏中的自动构面功能。 这里推荐点击构面方法&#xff0c;原因是操作起…

MachineLearningWu_13_AGI

AGI的全称是artificial general intelligence&#xff0c;通用人工智能&#xff0c;而我们现在做的关于医学影像的分析&#xff0c;可以说完全是ANI。 而我们使用MLP对于大脑中神经网络的模拟更是完全不同于人类大脑的行为。

mysql(三)InnoDB之自适应hash索引

目录 前言自适应哈希索引 (Adaptive Hash Index, AHI)既然是哈希&#xff0c;key 是什么&#xff0c;value 是什么&#xff1f;为啥叫 “自适应 (adaptive)****” 哈希索引&#xff1f;系统会不会判断失误&#xff0c;是不是一定能加速&#xff1f; 创建自定义的hash索引思路示…