【搞懂Java多線程之一】多線程相關概念,線程生命週期以及線程建立方法

來源:互聯網
上載者:User

標籤: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多線程之一】多線程相關概念,線程生命週期以及線程建立方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.