欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          java線程中start方法與run方法的區(qū)別是什么

          java線程中start方法與run方法的區(qū)別是什么

          區(qū)別對比如下:

          我們知道Java中的線程是通過Java.lang.Thread來實現(xiàn)的,那么我們就可以通過實例化Thread一個對象來創(chuàng)建一個線程,然后再調(diào)用start()啟動,但是Thread的一個特定的方法run()也可以啟動線程,那么這兩個方法有什么區(qū)別呢?

          線程狀態(tài)

          在Java當中,線程通常有五種狀態(tài):創(chuàng)建、運行、阻塞、等待、終止 NEW------------------->新建狀態(tài),沒有調(diào)用start()之前的狀態(tài) RUNNABLE---------->運行狀態(tài),(running執(zhí)行中,ready就緒(等待cpu時間片)) BLOCKED------------>阻塞狀態(tài), WAITING-------------->等待狀態(tài),沒有明確的等待結束時間,調(diào)用wait() TIMED_WAITING—>超時等待狀態(tài),有明確的等待時間,如:sleep(xxx) TERMINATED-------->終止狀態(tài)

          多線程原理:

          我們一般使用thread new一個線程,然后調(diào)用start方法啟動,線程就會處于運行狀態(tài)中ready,等待CPU調(diào)度,然后再執(zhí)行線程里面的run()方法,使用start方法才真正實現(xiàn)了多線程運行,因為這個時候不用等待我們的run方法執(zhí)行完成就可以繼續(xù)執(zhí)行下面的代碼,這才叫多線程。

          如果直接使用thread執(zhí)行run方法會怎么樣呢?

          因為run方法是thread里面的一個普通的方法,如果直接調(diào)用run()方法,這個時候它會運行在主線程中的,因為程序中只有主線程一個線程,如果有兩個線程,都是直接調(diào)用run()方法,那么他們的執(zhí)行順序一定是按順序執(zhí)行的,并沒有實現(xiàn)多線程的目的。

          免費學習視頻分享:java視頻教程

          代碼對比

          public class ThreadDemo5 {     public static final boolean flag=false;     public static void main(String[] args) {         Thread t1=new Thread(new Runnable() {             @Override             public void run() {                 System.out.println(Thread.currentThread().getName());             }         });         t1.start();     } }

          調(diào)用start()方法,線程名是默認的

          java線程中start方法與run方法的區(qū)別是什么

          public class ThreadDemo5 {     public static final boolean flag=false;     public static void main(String[] args) {         Thread t1=new Thread(new Runnable() {             @Override             public void run() {                 System.out.println(Thread.currentThread().getName());             }         });         t1.run();     } }

          調(diào)用run(),線程名是main

          java線程中start方法與run方法的區(qū)別是什么

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號