start()和run()的区别
生活随笔
收集整理的這篇文章主要介紹了
start()和run()的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
start方法:
通過該方法啟動線程的同時也創建了一個線程,真正實現了多線程。無需等待run()方法中的代碼執行完畢,就可以接著執行下面的代碼。此時start()的這個線程處于就緒狀態,當得到CPU的時間片后就會執行其中的run()方法。這個run()方法包含了要執行的這個線程的內容,run()方法運行結束,此線程也就終止了。
run方法:
通過run方法啟動線程其實就是調用一個類中的方法,當作普通的方法的方式調用。并沒有創建一個線程,程序中依舊只有一個主線程,必須等到run()方法里面的代碼執行完畢,才會繼續執行下面的代碼,這樣就沒有達到寫線程的目的。
而run方法是業務邏輯實現的地方,本質上和任意一個類的任意一個成員方法并沒有任何區別,可以重復執行,被一個線程反復調用,也可以被單獨調用
總結一下:
1.start() 可以啟動一個新線程,run()不能
2.start()不能被重復調用,run()可以
3.start()中的run代碼可以不執行完就繼續執行下面的代碼,即進行了線程切換。直接調用run方法必須等待其代碼全部執行完才能繼續執行下面的代碼。
4.start() 實現了多線程,run()沒有實現多線程。
?
總結
以上是生活随笔為你收集整理的start()和run()的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: REVERSE-PRACTICE-BUU
- 下一篇: Navicat15安装笔记