標籤:java多線程 線程建立 線程生命週期
樓主決定要好好地把Java的多線程給看一下,所以特地來寫下部落格,內容大部分都是摘抄自網上看到的資料或者書籍,能給出連結的我會給出連結。嗯,希望大家跟樓主一起抱團,加油加油(^ω^)也歡迎關注樓樓的個人部落客頁www.anycodex.com。
1.多線程相關概念
程式:為了完成特定任務,用某種語言編寫的一組指令集合。
進程:運行中的程式,系統跳讀和資源分派的一個獨立單位,作業系統會為每一個進程分配一段記憶體空間。
線程:比進程更小的執行單位,每一個進程可能有多個線程,線程需要放到一個進程中才能執行。線程由程式負責管理,而進程由系統進行調度。
多線程:並存執行多條指令,將CPU時間片按照調度演算法分配給各個線程,實際上是分時執行,知識切換時間短,使用者感覺在同時。
2.線程的生命週期
:
3.線程的建立
Java中線程建立有兩種方式:繼承Thread類建立、實現Runnable介面
方法一:繼承Thread類來建立
package net.mindview.util;//第一步、繼承Thread類class MyThreadRunning extends Thread{ //建構函式 public MyThreadRunning() { super("My Thread"); //System.out.println("建立一個線程" + getName()); } //第二步、重寫run方法 public void run() { for (int i = 0; i <= 3; i++) { System.out.println("建立一個線程" + getName()+i); try { sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}public class MyThread { public static void main(String[] args) { //第三步、執行個體化自訂的線程類對象 MyThreadRunning mtr = new MyThreadRunning(); //第四步、調用start方法從而啟動run方法 mtr.start(); }}
運行結果:
建立一個線程My Thread0
建立一個線程My Thread1
建立一個線程My Thread2
建立一個線程My Thread3
方法二:實現Runnable介面實現
package net.mindview.util;//第一步、實現Runnable介面class MyThreadRunning implements Runnable{ //第二步、重寫run方法 public void run() { for (int i = 0; i <= 3; i++) { System.out.println("建立一個線程" + Thread.currentThread().getName() + i); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}public class MyThread { public static void main(String[] args) { //第三步、執行個體化自訂的線程類對象 MyThreadRunning mtr = new MyThreadRunning(); //第四步、執行個體化一個Thread類對象並將自訂的線程類對象作為參數傳入,後面一個參數為線程名 Thread thread = new Thread(mtr, "My Thread"); //第五步、調用start方法啟動線程 thread.start(); }}
運行結果:
建立一個線程My Thread0
建立一個線程My Thread1
建立一個線程My Thread2
建立一個線程My Thread3
如果是繼承Thread類,那麼該類就不能繼承其他類了;
實現Runnable介面,並不影響繼承其他類。
總結:這一篇就總結到這裡了,怎麼樣,東西應該大都懂了吧?下篇繼續哦,內容是多線程的控制、線程的優先順序和線程的調度。加油加油加油(^ω^)
參考連結:http://blog.csdn.net/coder_pig/article/details/44284423
【搞懂Java多線程之一】多線程相關概念,線程生命週期以及線程建立方法