独自幸福快乐共享在线教育成果蹊径课堂助力家长破解孩子依依不舍孤独
中医减肥 2020年06月13日 浏览:2 次
从以上代码可以看出,Test1得到由Test_Exec_In发过来的信息,并将其输出。当你不加ash()和ose()时,信息将无法到达子进程,也就是说子进程进入阻塞状态,但由于父进程已经退出了,因此,子进程也跟着退出了。如果要证明这一点,可以在最后加上ad(),然后通过任务管理器(在windows下)查看java进程,你会发现如果加上ush()和ose(),只有一个java进程存在,如果去掉它们,就有两个java进程存在。这是因为,如果将信息传给Test2,在得到信息后,Test2就退出了。在这里有一点需要说明一下,exec的执行是异步的,并不会因为执行的某个程序阻塞而停止执行下面的代码。因此,可以在运行test2后,仍可以执行下面的代码。 exec方法经过了多次的重载。上面使用的只是它的一种重载。它还可以将命令和参数分开,如exec("st2")可以写成exec("java", "test2")。exec还可以通过指定的环境变量运行不同配置的java虚拟机。
除了使用Runtime的exec方法建立子进程外,还可以通过ProcessBuilder建立子进程。ProcessBuilder的使用方法如下:
// Test_Exec_va
import .*;
public class Test_Exec_Out
{
public static void main(String[] args)
{
ProcessBuilder pb = new ProcessBuilder("java", "test1");
Process p = art();
… …
}
}
在建立子进程上,ProcessBuilder和Runtime类似,不同的ProcessBuilder使用start()方法启动子进程,而Runtime使用exec方法启动子进程。得到Process后由自己负担部分或全部实际运费,它们的操作就完全一样的。
ProcessBuilder和Runtime一样,也可设置可执行文件的环境信息、工作目录等。下面的例子描述了如何使用ProcessBuilder设置这些信息。
ProcessBuilder pb = new ProcessBuilder("Command", "arg2"桥下彻称这一发言有辱美军以及美国国民, "arg2", ''');
// 设置环境变量
MapString, String env = vironment();
t("key1", "value1");
move("key2");
t("key2", t("key1") + "_test");
rectory("..\abcd"); // 设置工作目录
Process p = art(); // 建立子进程
肇庆治疗白斑病费用运动损伤的处理方法鼻窦炎吃什么药管用
- 上一篇: 山东十余拆迁户被迎面喷毒气
- 下一篇 香港一男子因水费争执杀害邻居纵火烧屋跳楼
-
岗梅的功效与作用
2019-07-12
-
足三里穴拔罐具有什么保健作用
2019-07-12
-
浙江明年底实现县县都有中医院
2019-07-06
-
自制酸梅汤解渴祛暑健脾安神
2019-07-06
-
白领益吃的九种食物
2019-07-02
-
食物相克切不可忽视
2019-07-02