黑马程序员技术交流社区
标题:
线程运行疑问?
[打印本页]
作者:
wupingtanlu
时间:
2012-4-21 12:27
标题:
线程运行疑问?
在创建线程时,为什么我调用时是用 thread.strat();方法而不是用 thread.run方法呢
public static void main(String [] args)
{
创建子线程的对象 thread;//子线程的代码省略了
thread.start();// A 处 此方法是创建了 线程 并启用了线程。
thread.run();// B 处 此处是创建了线程 但是没用启动线程
for(int i=0;i<100;i++)
System.out.println("main------"+i)
}
子线程里面的run方法
public void run()
{
for(int i=0;i<100;i++)
System.out.println("thread------"+i)
}
当用A时注释B 每次运行的结果都不一样
而用B时注释A 每次的运行的结果都是一样的
不知道理解的对不对?
作者:
邓斌
时间:
2012-4-21 12:38
thread.run 中方法是只是将代码存储在线程中,让线程运行这段代码
thread.strat(); 这个有2个作用。启动线程。调用run方法。
理解是正确的。
作者:
萌小子
时间:
2013-5-24 17:38
调用start()方法后,线程不一定马上运行,有可能去执行下面的语句。所以结果是不能确定的。
而直接调用run()方法,是执行完run方法体后才会往下执行,所以结果是确定的。你的理解不错,不过还不够深
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2