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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在线程中,调用run()方法和调用start()方法有什么区别?

4 个回复

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

谢谢,知道了。
回复 使用道具 举报
Super_Nos 发表于 2015-5-11 18:20
对Java来说,run()方法没有任何特别之处。像main()方法一样,它只是新线程知道调用的方法名称。而start()却 ...

我去看你的帖子。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马