連接線程
如果你需要在一個線程中等待另一個線程的死亡你可以對希望結束的線程調用join()方法不帶參數調用join()方法將暫停當前線程只要指定線程結束
threadljoin() //suspend the current thread until threadl dies
你也可以傳遞一個long值給join()方法去指定你打算等待線程死亡的時間的毫秒數
threadljoin(); //wait up to second for threadl to die
線程調度
線程的調度依賴你的操作系統但當其他線程睡眠時就是說當他們調用它們的sleep()力一法時每個線程當然會獲得機會如果你的操作系統使用搶占多仟務處理就像Windows 一樣程序將在run()方法中沒調用sleep()的情況下上作(如果你刪除了sleep()調用你也應該刪除try和catch塊)盡管如此如果你的操作系統不按這種方式進行時序安排在run()中不調sleep() first線程將獨占處理器並將無限她繼續執行下圖舉例說明通過調用sleep()方法的四個線程如何分享處理器的時間去放棄控制
注意在Tread類中定義了另一個yield()方法它給其他線程執行的機會如果其他線程在等待但你不想在指定時間內將當前執行線程掛起你只想允許其他線程短衡訪問這時你可以使用該方法但當你對一個線程調用sleep()方法雖然沒有其他線程在等線程不會用參數指定的時間段來持續工作另一方面如果沒有線程在等調用yield()方法將導致當前線程立即重新占用
[] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27759.html