java多線程---基礎,java多線程---
一, java多線程----線程與進程
進程: 程式(任務)的執行過程,擁有資源(共用記憶體,共用資源)和線程(一個或者多個,至少一個)。 例如:開啟工作管理員,qq,chrome,都屬於進程。
線程: 系統中最小的執行單元,同一進程中有多個線程,線程共用進程的資源。 例如:qq的聊天發送訊息。
單線程:程式中只有一個線程,實際上主方法就是一個主線程。
多線程:程式中運行多個任務, 目的是更好的使用cpu資源。
二,java多線程----線程的實現
簡單一句話來說,繼承Thead類或者實現Runnable這個介面,然後重寫裡面的run方法。
繼承Thead類
1 public class MyThead extends Thread{ 2 3 private String name; 4 public MyThead(String name) { 5 this.name = name; 6 } 7 @Override 8 public void run() { 9 for (int i = 0; i < 1000; i++) {10 System.out.println(name+"------"+i);11 }12 }13 }
實現Runnable介面
1 public class MyRunnable implements Runnable{ 2 3 private String name; 4 public MyRunnable(String name) { 5 this.name = name; 6 } 7 @Override 8 public void run() { 9 for (int i = 0; i < 1000; i++) {10 System.out.println(name+"----"+i);11 }12 13 }14 15 }
啟動線程
1 public class TheadDemo { 2 3 public static void main(String[] args) { 4 MyThead t1 = new MyThead("t1"); 5 MyThead t2 = new MyThead("t2"); 6 7 t1.start(); 8 t2.start(); 9 10 MyRunnable r1 = new MyRunnable("r1");11 MyRunnable r2 = new MyRunnable("r2");12 13 Thread t3 = new Thread(r1);14 Thread t4 = new Thread(r2);15 16 t3.start();17 t4.start();18 }19 }
三,java多線程----線程的狀態
建立狀態:建立多線程對象。
就緒狀態: 調用start(),等待cpu調用。
運行狀態: 執行run()。
阻塞狀態:暫時停止執行,將資源交給其他線程使用。
終止狀態:線程結束。
四,java多線程----常用的方法(thead類裡面)
擷取當前線程的對象 currentThread()
得到線程名稱 getName()
判斷線程是否運行 isAlive()
線程的強行運行 join() 例如:倆個線程t1,t2, 當在t1執行的時候,t2調用join()方法,t1暫停不執行,t2執行,執行完成後,釋放資源,t1接著執行。
線程的休眠 sleep() 例如:t1每執行一次,等待5秒 t1.sleep(5000)
線程的禮讓 yield() 例如:倆個線程t1,t2, 當在t1執行的時候,t1調用yield()方法,t1暫停不執行,t2執行,執行完成後,釋放資源,t1接著執行。