Java thread run() start() 是干什么的以及區別


Java  thread  run()  start() 是干什么的?為什么一調他們就開始運行里面的方法了?以及區別?

1.這個屬於線程的同步機制問題,也就是線程安全問題,實際開發中用到多線程的例子很多,比如說:銀行排號、火車站買票等,就是很多機器同時訪問共享數據的時候就是這個了。

2.線程啟動之后(被調之后),會運行被覆蓋的run方法。

3.先說用thread.run()來啟動線程,會順序執行,run啟動一條線程之后將這條線程走完之后,才執行下面的run,想想火車站排票?要是用run就等於一條長蛇隊了。

再說用thread.start來啟動線程,這個才是真正實現了多線程運行,thread.start()不用等待被覆蓋的run執行完也可以直接繼續執行下面的代碼,線程處於就緒狀態,交替執行直到結束。

 

這個是繼承了thread的一個類,也算是線程類了吧。

這個是調用run()之后的結果:

 這個是調用start()的結果:

好了,start()和run()的區別就是這個樣子了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM