这是另⼀个⾮常经典的 java 多线程⾯试问题,⽽且在⾯试中会经常被问到。很简单,但是很多⼈都会答不上来!
new
⼀个Thread
,线程进⼊了新建状态。调⽤start()
⽅法,会启动⼀个线程并使线程进⼊了就绪状态,当分配到时间⽚后就可以开始运⾏了。start()
会执⾏线程的相应准备⼯作,然后⾃动执⾏run()
⽅法的内容,这是真正的多线程⼯作。 但是,直接执⾏run()
⽅法,会把run()
⽅法当成⼀个main
线程下的普通⽅法去执⾏,并不会在某个线程中执⾏它,所以这并不是多线程⼯作。
总结:调⽤start()
⽅法⽅可启动线程并使线程进⼊就绪状态,直接执⾏run()
⽅法的话不会以多线程的⽅式执⾏。
留言