暫停目前正在執行的線程對象,并執行其他線程。 yield()應該做的是讓目前運作線程回到可運作狀态,以允許具有相同優先級的其他線程獲得運作機會。是以,使用yield()的目的是讓相 同優先級的線程之間能适當的輪轉執行。但是,實際中無法保證yield()達到讓步目的,因為讓步的線程還有可能被線程排程程式再次選中。 結論:yield()從未導緻線程轉到等待/睡眠/阻塞狀态。在大多數情況下,yield()将導緻線程從運作狀态轉到可運作狀态,但有可能沒有效果
使目前線程睡眠至少多少毫秒(盡管它可能在指定的時間之前被中斷)。
保證目前線程停止執行,直到該線程所加入的線程完成為止。然而,如果它加入的線程沒有存活,則目前線程不需要停止, 線上程myMainThread中調用另一個線程對象myThread的join方法,意味着,myMainThread線程必須等待myThread這個線程指向完畢後,才能往下執行,相當于 此時myThread插入進來,邀請必須全部完成才放行。
如果使用的是join(long millis) ,則參數表示myMainThread線程的最長等待時間,這個數值過後,就不等了
1、線程的run()方法完成。
2、在對象上調用wait()方法(不是線上程上調用)。
3、線程不能在對象上獲得鎖定,它正試圖運作該對象的方法代碼
4、線程排程程式可以決定将目前運作狀态移動到可運作狀态,以便讓另一個線程獲得運作機會,而不需要任何理由