黑马程序员技术交流社区
标题:
调用run()和调用start的区别
[打印本页]
作者:
CanABirdFly?
时间:
2014-7-11 13:17
标题:
调用run()和调用start的区别
class Demo3 extends Thread
{
private String name;
Demo3(String name)
{
this.name = name;
}
public void run()//重写Thread类中的run方法
{
for(int x=1; x<10; x++)
{
for(int y=1; y<999999999; y++){}
System.out.println(name+"......x="+x);
}
}
}
class ThreadDemo
{
public static void main(String[] args)
{
Demo3 d1 = new Demo3("呵呵");
Demo3 d2 = new Demo3("hehe");
d1.start();//开启线程
d2.start();
/*
d1.run();
d2.run();
*/
}
}
/*调用run()和调用start的区别:
1.调用run()只是单纯的调用了定义好的run()方法并没有
实现多线程而调用start是开启多线程的开关实现了多线程
提高了运算速度,节省了时间。
2.结果的排序不同,调run()的排序为先D1的内容然后D2的内容 调用start()为D1D2随机分布
*/
作者:
张慈瑞
时间:
2014-7-12 21:43
在多线程当中,直接调用run()方法,不会有多线程的现象,只是把它当做普通的方法调用,start()方法是开启线程的真正的执行方法。
作者:
alive
时间:
2014-7-12 23:14
。。。。。。。。。。。。。。。。。。。。水
作者:
tianleboy
时间:
2014-7-13 12:09
你直接调用run()方法时,这只是单纯的方法调用,这样排序内容肯定就是固定的。而你调用start()方法后,你这时就开启线程,调用线程中的run方法。如果你的电脑CPU是多核的话,多线程执行的速度非常快,而且顺序是不一定的,所以显示内容的顺序也是不一定的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2