黑马程序员技术交流社区

标题: 在线程中,调用run()方法和调用start()方法有什么区别? [打印本页]

作者: KK要有光    时间: 2015-5-11 18:05
标题: 在线程中,调用run()方法和调用start()方法有什么区别?
在线程中,调用run()方法和调用start()方法有什么区别?
作者: 痲ボㄋ.    时间: 2015-5-11 18:18
开启一个线程调用run()方法就相当于不同对象调用普通方法一样,实际上并没有开启一个线程;而调用start()方法它会开启一个线程同时还回去自动调用run()方法。
作者: Super_Nos    时间: 2015-5-11 18:20
对Java来说,run()方法没有任何特别之处。像main()方法一样,它只是新线程知道调用的方法名称。而start()却不同,在调用start()方法之前:线程处于新状态中,新状态指有一个Thread对象,但还没有一个真正的线程。在调用start()方法之后会启动新的执行线程(具有新的调用栈),该线程从新状态转移到可运行状态,当该线程获得机会执行时,其目标run()方法将运行。
希望我的帖子能帮助你~
http://bbs.itheima.com/thread-194522-1-1.html
作者: KK要有光    时间: 2015-5-11 18:38
痲ボㄋ. 发表于 2015-5-11 18:18
开启一个线程调用run()方法就相当于不同对象调用普通方法一样,实际上并没有开启一个线程;而调用start()方 ...

谢谢,知道了。
作者: KK要有光    时间: 2015-5-11 18:41
Super_Nos 发表于 2015-5-11 18:20
对Java来说,run()方法没有任何特别之处。像main()方法一样,它只是新线程知道调用的方法名称。而start()却 ...

我去看你的帖子。




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