A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邱成 中级黑马   /  2012-9-12 23:27  /  1427 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邱成 于 2012-9-13 07:27 编辑

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

2 个回复

倒序浏览
先回答楼主的第一个问题:首先mian主函数 是一个线程,称之为主线程,加入不继承Thread类,和不实现Runnable接口,只有main函数,也就是单线程。

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

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

第四个问题:没太看懂,不知道楼主说的是不是,在单线程中,当主函数执行完后,还有没有其他的进程还在执行 假如是我说的,我感觉应该是没有吧。
           而在多线程中,主线程结束,程序不一定会停,因为还有其他的线程有可能没有执行完。
回复 使用道具 举报
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虚拟机启动后,只有一个进程,这个进程由主线程负责实行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马