java是不是存在父线程子线程之说
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java是不是存在父线程子线程之说相关的知识,希望对你有一定的参考价值。
为什么我们老师说做父进程子进程只能用C语言?
java的Process类是不是操纵线程的?
父子进程除了创建顺序先后外还有什么定义?
2、当使用javaAPI创建一个外部进程,比如java调用一个shell脚本,
例子:
Process p= Runtime.getRuntime().exec(“echo 123”);
这时候Process就派上用场了,调用其API可以获得其运行状态,包括:输入流,输出流,错物流,完结状态。可是记住,创建的这个进程并不是在JVM中运行的。
3、java的线程操纵是Thread,Runnable,ThreadGroup,和concurrent包里的东西,有兴趣可以自己学
4、多线程的时候,父线程创建很多线程运行, 可以获得被创建线程的运行状态,操纵子线程,多线程比较复杂,建议单独学习。
PS:码字好累。。。追问
其他问题都搞懂了。你能解释一下最后一个问题吗——父子进程除了创建顺序先后外还有什么定义?
追答你的问题我可以理解为“父子线程的定义用创建先后来区分,创建先的是父线程,创建后的事子线程”。
这个理解是不严谨的。
当在一个运行的线程A里,创建另一个线程B的时候,那么A是父线程,B是子线程。
当在一个运行的线程A里,创建线程B,然后又创建了线程C,这时候虽然B比C创建早,可是B并不是C的父线程,而A是B和C的父线程。
这就是定义,严格的讲是:当一个线程创建了另一个线程的时候,那么这个线程被称为另一个线程的父线程,另一个线程被称为这个线程的子线程。
1、java程序是允许在java虚拟中的,也就是JVM中,所有的java程序在JVM中都是以线程的形式运行的,java没有进程之说,只有线程。
2、当使用javaAPI创建一个外部进程,比如java调用一个shell脚本,
例子:
Process p= Runtime.getRuntime().exec(“echo 123”);
这时候Process就派上用场了,调用其API可以获得其运行状态,包括:输入流,输出流,错物流,完结状态。可是记住,创建的这个进程并不是在JVM中运行的。
3、java的线程操纵是Thread,Runnable,ThreadGroup,和concurrent包里的东西,有兴趣可以自己学
4、多线程的时候,父线程创建很多线程运行, 可以获得被创建线程的运行状态,操纵子线程,多线程比较复杂,建议单独学习。 参考技术B 1、在Java6中,可以通过Process、ProcessBuilder 、Runtime.exec来调用其他程序,被调用程序作为子进程运行。Java程序可以通过stdio输入输出操作子进程,类似于控制台程序。
2、Java中操纵线程线程是用Thread类。
3、父子进程是由Win32 SDK中CreateProcess函数来指定的,Java实际上也是调用了这个API函数。因此你们老师会认为“父进程子进程只能用C语言” 参考技术C java通过线程的优先级来控制线程的先后执行概率,不过也不是绝对的。 java中有守护线程那么一说,当前台线程执行完后,才执行守护线程。
Java 并发 线程属性
Java 并发 线程属性
@author ixenos
线程优先级
1.每当线程调度器有机会选择新线程时,首先选择具有较高优先级的线程
2.默认情况下,一个线程继承它的父线程的优先级
当在一个运行的线程A里,创建另一个线程B的时候,那么A是父线程,B是子线程。
当在一个运行的线程A里,创建线程B,然后又创建了线程C,这时候虽然B比C创建早,可是B并不是C的父线程,而A是B和C的父线程。
3.线程的优先级高度依赖于系统,当虚拟机依赖于宿主机平台的线程实现机制时,Java线程的优先级被映射到宿主机平台的优先级上!优先级个数也许更多也许更少(Java有10个优先级)
4.如果有几个高优先级的线程没有进入非活动状态,低优先级的线程可能永远也不能执行!因为每当调度器决定运行一个新线程时,首先会在具有高优先级的线程中进行选择,这样就可能会使低优先级的线程完全饿死。
守护线程
1.守护线程的唯一用途是为其他线程提供服务(计时线程就是一个例子)
2.当只剩下守护线程时,虚拟机就退出了
3.守护线程应该永远不去访问固有资源(文件、数据库),因为它会在任何时候发生中断
4.调用 t.setDaemon(true); 将线程转换为守护线程
未捕获异常处理器
1.线程的run方法不能抛出任何被检测的异常,但是不被检测的异常会导致线程终止!但我们不需要任何catch子句去处理异常,因为在线程死亡之前,异常被传递到一个用于未捕获异常的处理器
2.(未完待续 Thinking in Java)
以上是关于java是不是存在父线程子线程之说的主要内容,如果未能解决你的问题,请参考以下文章