摘要:與執行方法,是用來啟動線程的,此時線程處于就緒狀態,獲得調度后運行方法。執行方法,相對于普通方法調用,在主線程調用。程序是順序執行的,執行完才會執行下面的程序。
start與run
執行start方法,是用來啟動線程的,此時線程處于就緒狀態,獲得調度后運行run方法。run方法執行結束,線程就結束。
執行run方法,相對于普通方法調用,在主線程調用。程序是順序執行的,執行完才會執行下面的程序。
示例public class StartDemo extends Thread{ @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { StartDemo startDemo = new StartDemo(); startDemo.setName("startDemo"); startDemo.run(); startDemo.start(); } }
運行結果如下:
可見,執行run的時候,run方法是main這個線程執行的,執行start的時候,run方法是startDemo線程執行的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75221.html
摘要:定義等待該線程終止,比如線程調用了線程的,那么線程要等到線程執行完后,才可以繼續執行。 定義 等待該線程終止,比如A線程調用了B線程的join,那么A線程要等到B線程執行完后,才可以繼續執行。 示例 public class JoinDemo { static class JoinThread1 implements Runnable { Thread thre...
摘要:和是配套使用的,方法容易導致死鎖。方法不會保證線程的資源正常釋放方法給線程打個停止標記,將線程的中斷狀態設置為,并沒有馬上強制中斷線程,線程是否中斷由線程自己決定。終結狀態,還是返回。方法判斷當前線程是否中斷,清除中斷標志。 resume、suspend、stop resume和suspend是配套使用的,suspend方法容易導致死鎖。 stop方法不會保證線程的資源正常釋放 i...
摘要:不釋放持有的鎖,釋放鎖。在調用方法前,必須持有鎖,調用喚醒,也要持有鎖。休眠一定時間后,進入就緒狀態。這兩個都能被方法中斷當前狀態。用法方獲取鎖判斷條件,不滿足繼續滿足執行其他業務方獲取鎖改變條件通知為什么是而不是會一直循環,直到條件滿足。 sleep和wait sleep是Thread類的方法,wait是Object的方法。 sleep可以到處使用,wait必須是在同步方法或者代碼...
摘要:在指定毫秒數內,讓正在執行的當前線程進入休眠期。示例運行結果如下結果可以看出,線程的兩次時間相差毫秒,的兩次時間相差毫秒,只影響自己的線程運行,不影響其他線程。 sleep 在指定毫秒數內,讓正在執行的當前線程進入休眠期。 示例 public class SleepDemo extends Thread { @Override public void run() { ...
摘要:就緒狀態調用或者由阻塞狀態被解除時,進入就緒狀態,此時,只能表示線程可以運行了,但不代表已經運行了,需要等待的調度。死亡狀態當線程執行結束或者異常等,線程就會結束,進入死亡狀態。 流程圖 showImg(https://segmentfault.com/img/bVbuJ6f); 新建狀態 當用new創建一個線程后,線程就處于新建狀態,此時和其他普通java對象一樣,由JVM創建內存空...
閱讀 3772·2021-11-23 09:51
閱讀 4385·2021-11-15 11:37
閱讀 3522·2021-09-02 15:21
閱讀 2745·2021-09-01 10:31
閱讀 878·2021-08-31 14:19
閱讀 851·2021-08-11 11:20
閱讀 3307·2021-07-30 15:30
閱讀 1688·2019-08-30 15:54