Thread.sleep 與Thread.currentThread.sleep


參考博客: https://blog.csdn.net/guangyinglanshan/article/details/51645053

公司項目近段時間要使用thread, 個人想去了解Thread.sleep和Thread.currentYhread.sleep的不同之處,在這里做一下簡單的記錄.

一、第一種方式是只調用sleep靜態方法;第二種是獲取對象后再調用sleep靜態方法。第二種方式效率要低一些,因為多了一次函數調用,

而且通過對象調用靜態方法也不太符合“靜態”的定義(靜態成員最好通過類名直接訪問),但功能上是一致的。當需要調用非靜態方法時使用第二種方式,

否則直接使用第一種方式。

二、如果線程是通過繼承Thread實現的話這2個方法沒有區別;
如果線程是通過實現Runnable接口來實現的,則不是Thread類,不能直接使用Thread.sleep()
必須使用Thread.currentThread()來得到當前線程的引用才可以調用sleep(),

所以要用Thread.currentThread().sleep()來睡眠。在多線程情況下區別特別明顯。


免責聲明!

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



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