黑马程序员技术交流社区

标题: 进程线程问题 [打印本页]

作者: 邱成    时间: 2012-9-12 23:27
标题: 进程线程问题
本帖最后由 邱成 于 2012-9-13 07:27 编辑

1.        java中main方法启动的是一个进程还是一个线程
2.        那和Thread、Runnable的开启的线程区别是什么
3.        java多线程在main函数里start()与在构造方法里start()有何区别
4.        在一个java程序中能否启动一个独立于它的进程(不是线程)。我所谓的独立是指:创建的不是当前进程的子进程。当前进程结束后被创建的进程仍然可以执

作者: 李志群    时间: 2012-9-12 23:44
先回答楼主的第一个问题:首先mian主函数 是一个线程,称之为主线程,加入不继承Thread类,和不实现Runnable接口,只有main函数,也就是单线程。

第二个问题:Thread类是继承, Runnable接口是实现。继承和实现的区别毕老师视频都有讲到,我在这里就不说了,,,

第三个问题:线程里面的statr()方法 是先实现Runnable接口 或者继承Thread类 完后覆盖run方法开启线程, 普通的start方法 只是单纯的方法而已。

第四个问题:没太看懂,不知道楼主说的是不是,在单线程中,当主函数执行完后,还有没有其他的进程还在执行 假如是我说的,我感觉应该是没有吧。
           而在多线程中,主线程结束,程序不一定会停,因为还有其他的线程有可能没有执行完。
作者: 李菁    时间: 2012-9-12 23:58
1.        java中main方法启动的是一个进程还是一个线程
JVM启动时会有一个进程java.exe。该进程中至少有一个线程负责java程序的执行,而且这个线程运行的代码存在于main方法中。所以main方法称之为主线程
2.        那和Thread、Runnable的开启的线程区别是什么
Thread是继承,Runnable是实现接口。
继承Thread类是直接new继承了Thread类的子类实例对象,直接由对象名.start()
实现Runnable接口是先new一个线程:Thread t1=new Thread (t);//new线程对象的同时就指定run方法所属对象。然后再:t1.start();

3.        java多线程在main函数里start()与在构造方法里start()有何区别
main函数的start()只是普通的调用方法。构造方法里的start()是只要实例化这个类,就会走start(),不用调用
4.        在一个java程序中能否启动一个独立于它的进程(不是线程)。我所谓的独立是指:创建的不是当前进程的子进程。当前进程结束后被创建的进程仍然可以执
Java虚拟机启动后,只有一个进程,这个进程由主线程负责实行





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2