1. 程式人生 > >run()方法和start()方法的區別

run()方法和start()方法的區別

個人部落格:小景哥哥

run()方法和start()方法的區別

系統呼叫執行緒類的start()方法來啟動一個執行緒,此時該執行緒處於就緒狀態,而非執行狀態,也就意味著這個執行緒可以被JVM來排程執行。在排程過程中,JVM通過呼叫執行緒類的run()方法來完成實際的操作,當run()方法結束後,此執行緒就會終止。

​ 如果直接呼叫執行緒類的run()方法,這會被當做一個普通的函式呼叫,程式中仍然只有主執行緒這一個執行緒,也就是說,start()方法能夠非同步地呼叫run()方法,但是直接呼叫run()方法卻是同步的,因此也就無法達到多執行緒的目的。

​ 只有通過呼叫執行緒類的start()方法才能真正達到多執行緒的目的。