今天去面试被问蒙圈了。问线程的start()和run()方法有什么区别,我心想这start()方法听名字是线程的启动方法,run()方法就是实现runnable接口或者实现Thread类时覆写的方法,这会有什么区别吗?有可比性吗?工作了8年,第一次听到这问题,真的蒙了。
本着求真务学的态度,回来查一下,莫非是自己见识短浅,孤陋寡闻了?一查网上还是有很多人来比较两个方法的区别的。就如下面这篇写得挺详细。
http://www.runoob.com/note/33934
不查不知道,一查就被气得吐血。启动线程的就是start()方法异步执行,run()方法就是普通方法调用同步执行。
尼玛,用线程你会用run方法运行吗?这俩方法从功能上讲都不一样,有可比性吗?
好好好,小崽子们会玩儿!!!
写此文提示,如果有哪个面试官或者即将成为面试官的人,提问的时候,建议如下问法:
请您说一说线程的start()方法和run()方法。
别加区别,因为俩方法真的没有可比性。
线程几个状态面试的时候,也常被问到。
创建态、就绪态、运行态、阻塞态、消亡态