黑马程序员技术交流社区
标题:
启动线程使用run()还是start()?
[打印本页]
作者:
温立华
时间:
2013-3-18 21:44
标题:
启动线程使用run()还是start()?
本帖最后由 温立华 于 2013-3-19 15:38 编辑
启动线程使用run()还是start()?
作者:
刘海浩
时间:
2013-3-18 21:46
启动线程肯定要用start()方法。当用start()开始一个线程后,线程就进入就绪状态,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。当cpu分配给它时间时,才开始执行run()方法(如果有的话)。START()是方法,它调用RUN()方法.而RUN()方法是你必须重写的. run()方法中包含的是线程的主体。
作者:
张善颖
时间:
2013-3-18 21:46
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。
作者:
HM汪磊
时间:
2013-3-18 22:04
启动线程要用start()方法,好好看视频
作者:
伍淑江
时间:
2013-3-18 22:40
调用start() 线程开始执行;Java 虚拟机又调用该线程的 run 方法。
换句话说 start( )就像是一把钥匙,用它启动线程后,就自动调用了run( )
作者:
黑马-郑玉元
时间:
2013-3-18 22:40
class ThreadDemo1 {
public static void main(String[] args) {
MyThread mt = new MyThread(); // 4.创建线程对象
mt.start(); // 5.开启新线程, 内部会自动执行run方法
for (int i = 0; i < 1000; i++)
System.out.println("A");
}
}
class MyThread extends Thread { // 1.定义类继承Thread
public void run() { // 2.重写run方法
for (int i = 0; i < 1000; i++) // 3.把新线程要做的事写在run方法中
System.out.println("B");
}
}
复制代码
class ThreadDemo2 {
public static void main(String[] args) {
MyRunnable mr = new MyRunnable(); // 4.创建自定义的Runnable对象
Thread t = new Thread(mr); // 5.创建Thread对象, 传入Runnable
t.start(); // 6.调用start()开启新线程, 内部会自动调用Runnable的run()方法
for (int i = 0; i < 1000; i++)
System.out.println("C");
}
}
class MyRunnable implements Runnable { // 1.定义类实现Runnable接口
public void run() { // 2.实现run方法
for (int i = 0; i < 1000; i++) // 3.把新线程要做的事写在run方法中
System.out.println("D");
}
}
复制代码
上面是两种创建线程的方式,步骤代码都很详细了,相信你能看得懂!!也能理解透!!!
作者:
董霁辉
时间:
2013-3-18 23:43
1、start()方法,启动线程
2、run()方法中是你要允许的内容,且必须重写覆盖Runnable的run()方法
希望对你有帮助
作者:
祁振朋
时间:
2013-3-18 23:59
start
public void
start
()使该线程开始执行;Java 虚拟机调用该线程的 run 方法。 结果是两个线程并发地运行;当前线程(从调用返回给 start 方法)和另一个线程(执行其 run 方法)。 多次启动一个线程是非法的。特别是当线程已经结束执行后,不能再重新启动。
抛出:
IllegalThreadStateException
- 如果线程已经启动。
请参考JDK API规范
作者:
黑马-王鹏
时间:
2013-3-19 00:15
1.定以类继承Thread类
2.复写Thraed类中的方法的目的:将自定义代码存放在run()方法中,让线程运行
3.调用线程的start的作用:启动线程,调用run()方法
作者:
赵鸿富
时间:
2013-3-19 09:59
启动线程用start()方法。
start()开始一个线程后,线程就进入准备状态,使线程所代表的虚拟处理机处于可运行状态
start()是方法能调用run()方法.而run()方法是要重写的. run()方法中包含的是线程的主体。
作者:
谭辉
时间:
2013-3-19 10:11
启动线程时start()方法,start方法启动线程后调用run()
作者:
葛晓红
时间:
2013-3-19 13:06
run()方法中存放的是线程要执行的代码段,start()方法的作用是开启线程并调用run()方法!
作者:
陈丽莉
时间:
2013-3-19 14:29
若还有问题,请继续追问;没问题的话,请将帖子分类改成【已解决】。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2