您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關java中start方法與run方法有什么區別,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
Java中的集合主要分為四類:1、List列表:有序的,可重復的;2、Queue隊列:有序,可重復的;3、Set集合:不可重復;4、Map映射:無序,鍵唯一,值不唯一。
線程狀態
在Java當中,線程通常有五種狀態:創建、運行、阻塞、等待、終止 NEW------------------->新建狀態,沒有調用start()之前的狀態 RUNNABLE---------->運行狀態,(running執行中,ready就緒(等待cpu時間片)) BLOCKED------------>阻塞狀態, WAITING-------------->等待狀態,沒有明確的等待結束時間,調用wait() TIMED_WAITING—>超時等待狀態,有明確的等待時間,如:sleep(xxx) TERMINATED-------->終止狀態
多線程原理:
我們一般使用thread new一個線程,然后調用start方法啟動,線程就會處于運行狀態中ready,等待CPU調度,然后再執行線程里面的run()方法,使用start方法才真正實現了多線程運行,因為這個時候不用等待我們的run方法執行完成就可以繼續執行下面的代碼,這才叫多線程。
如果直接使用thread執行run方法會怎么樣呢?
因為run方法是thread里面的一個普通的方法,如果直接調用run()方法,這個時候它會運行在主線程中的,因為程序中只有主線程一個線程,如果有兩個線程,都是直接調用run()方法,那么他們的執行順序一定是按順序執行的,并沒有實現多線程的目的。
免費學習視頻分享: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(); } }
調用start()方法,線程名是默認的
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(); } }
調用run(),線程名是main
以上就是java中start方法與run方法有什么區別,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。