最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機立即綁定

請問,在這個例子中,為什么不能用 thread.sleep(1000),而只能用 Thread.sleep(1000)

IDE提示,也可以改為 WrongWayStopThread.sleep(1000)

這里的 Thread是否等同于 thread呢?

正在回答

5 回答

你可以去API中查下sleep方法的解釋,他是Thread的靜態(tài)方法,而靜態(tài)方法調(diào)用時用類去調(diào)用而不是實體對象去調(diào)用

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

小羊愛主 提問者

非常感謝!
2015-08-11 回復(fù) 有任何疑惑可以回復(fù)我~

因為如果調(diào)用Sleep方法 就只是執(zhí)行一次

0 回復(fù) 有任何疑惑可以回復(fù)我~

我的樓層按時間,不按空間- -。

0 回復(fù) 有任何疑惑可以回復(fù)我~

首先你要知道一個概念:

?main方法本身就是一個線程。

所以該程序有2個線程。

然后你要明白sleep方法是什么意思,老辦法,查API文檔(我推薦大家堅持看英文文檔,英語對程序員至關(guān)重要):

Causes the currently executing thread to sleep (cease execution)for the specified number of milliseconds plus the specified number of nanoseconds, subject to the precision and accuracy of system timers and schedulers. The thread does not lose ownership of any?monitors.”

“Causes the currently executing thread to sleep...”使當(dāng)前正在執(zhí)行的線程sleep。我猜想你程序中thread.sleep()是想讓thread線程sleep吧?其實是不可以的,編譯會自動處理成Thread.sleep。而為什么又可以改成WrongWayStopThread.sleep呢?因為WrongWayStopThread繼承自Thread呀,static方法可以被繼承(無法被重寫),classname.method哪里不對呢?

同時,對這個問題理解了也就理解為什么run方法里不能用Thread.sleep(1000)了。老師也講了doc中的內(nèi)容,我就不貼了,意思就是:

與sleep()? wait()? jion()相關(guān)的方法會clear掉interrupt status,導(dǎo)致while (!this.isInterrupted())的判斷出現(xiàn)并不穩(wěn)定性()。是不是很官方O__O "…(都這尿性,但嚴(yán)謹(jǐn)?shù)恼f確實是這樣,習(xí)慣就好),說簡單但不嚴(yán)謹(jǐn)點了就是你調(diào)用這些方法就會重置interrupt status,所以這里while中使用Thread.sleep(1000)就會讓while的判斷條件的返回值一直為true。(注意這里返回的native boolean isInterrupted不是上文中的interrupt status,interrupt status是由系統(tǒng)底層決定的,所以上面用clear

還有我認(rèn)為如果main中的thread.interrupt()(此方法會直接將native boolean isInterrupted標(biāo)記為true)剛好在run中的Thread.sleep(1000)之前,while (!this.isInterrupted())之后執(zhí)行的話,程序會出現(xiàn)bug——正常執(zhí)行(-__-)b。

以上純屬瞎掰

另外昨晚看到一篇關(guān)于程序員學(xué)習(xí)英語的文章覺得很棒,這里貼過來:

http://blog.jobbole.com/45296

還有嚴(yán)重批評1樓不負(fù)責(zé)任的回答。(╬▔皿▔)╬

加油小伙伴們。?

8 回復(fù) 有任何疑惑可以回復(fù)我~
#1

小羊愛主 提問者

謝謝老饕的耐心解釋(雖然還沒完全掰明白,哈哈~~),但是還是要感謝, 是的,英語很重要,我們都努力!加油!
2015-08-30 回復(fù) 有任何疑惑可以回復(fù)我~

Java代碼中存在著大小寫之分,感覺應(yīng)該不是等同的

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

小羊愛主 提問者

嗯,謝謝您的回復(fù)
2015-08-05 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

請問,在這個例子中,為什么不能用 thread.sleep(1000),而只能用 Thread.sleep(1000)

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號