这是另⼀个⾮常经典的 java 多线程⾯试问题,⽽且在⾯试中会经常被问到。很简单,但是很多⼈都会答不上来!

new⼀个Thread,线程进⼊了新建状态。调⽤start()⽅法,会启动⼀个线程并使线程进⼊了就绪状态,当分配到时间⽚后就可以开始运⾏了。start()会执⾏线程的相应准备⼯作,然后⾃动执⾏run()⽅法的内容,这是真正的多线程⼯作。 但是,直接执⾏run()⽅法,会把run()⽅法当成⼀个main线程下的普通⽅法去执⾏,并不会在某个线程中执⾏它,所以这并不是多线程⼯作。

总结:调⽤start()⽅法⽅可启动线程并使线程进⼊就绪状态,直接执⾏run()⽅法的话不会以多线程的⽅式执⾏。

最后修改日期: 2021年11月28日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。