這是一個問題,問我一個採訪,我不知道他在問什麼。
如果你能幫助上是相同的:java多線程訪談:sleep,wait,notify,yield - 哪一個是回調?
sleep, wait, notify, yield
- 哪一個是回調?
這是一個問題,問我一個採訪,我不知道他在問什麼。
如果你能幫助上是相同的:java多線程訪談:sleep,wait,notify,yield - 哪一個是回調?
sleep, wait, notify, yield
- 哪一個是回調?
回調是一種創建的方法,可以在某個特定的時間/事件從別處調用。
sleep()
,wait()
和yield()
被線程調用以執行動作。 notify()
可能會被解釋爲一個,因此如果一個是正確的更正確的答案,但沒有。
您列出的方法都不是回調。整個Thread
類只包含一個用戶可覆蓋的方法,即run
,這可能被認爲是該類的回調方法,因爲它被Thread
的內部調用。然而,最好的做法是而不是根本無法擴展Thread
。提供您自己的Runnable
實現,該實現有其回調方法run
。
這些看起來都不像傳統的回調。一個回調函數/方法是你註冊的東西,一旦操作完成時被調用(如果任務在另一個線程中被調度,可能是異步的)。
睡眠,等待和收益基本上阻止執行,直到滿足條件。通知喚醒被等待阻塞的線程。
'yield()'是否真的被視爲阻塞呼叫? –
@ Eng.Fouad:我認爲它阻塞,因爲它不會啓動任何異步過程。這就像睡眠一樣,一旦線程重新啓動,執行就會繼續。 – Kainsin