Java 之 多線程編程

來源:互聯網
上載者:User

標籤:blog   重寫   關鍵字   public   string   自動調用   資料   清理   線程優先順序   

1.線程:

  a.由來:單任務OS —— 多任務OS 

  b.進程:每一個進程對應一個應用程式,分配獨立記憶體空間

  c.線程:線程是進程內部的一個獨立的執行分支

  d.特點:共用內容地址空間,切換成本更低

 

 

2.線程的建立和啟動

  a.方法一:(Thread)

    ①繼承Thread類,重寫run方法——run方法只負責確定這個線程要做的事情

public class MyThread extends Thread{    public void run() {            }}

    ②開啟線程,要調用start方法——該方法會為線程分配資源,然後自動調用this.run()

MyThread mt = new MyThread();mt.start();        //開啟線程

    ③如果調用run方法——不會報錯,但只是普通的方法調用,沒有開啟新線程

 

  b.方法二:(Runnable)

    ①實現Runnable介面,重寫run方法——run方法只負責確定這個線程要做的事情

public class YourThread implements Runnable{    public void run() {    }}

    ②建立一個Thread對象,把Runnable介面的實作類別對象傳入

     調用Thread對象的start()

YourThread yt = new YourThread();Thread th = new Thread(yt);th.start();

 

 

3.線程狀態

  a.流程:①建立狀態(new Thread() 對象)——就緒狀態(調用start(),但start()在調用run()之前)——運行狀態(start(),調用run())——死亡狀態(run()方法結束,進行資源回收清理)

      ②中斷狀態:在運行狀態中,線程由於種種原因沒有得到CPU執行

  b.中斷狀態的五個原因:

    ①線程的優先順序:線程優先順序共十級,最高為10,最低為1

            優先順序高的只是被執行的幾率更大,不代表完勝優先順序低的

th.setPriority(10);th.setPriority(Thread.MAX_PRIORITY);

    ②阻塞:由於輸入/輸出,造成線程進行中斷狀態(如:Scanner)

    ③休眠:Thread的sleep方法

th.sleep(500);        //傳休眠的毫秒數

    ④等待 與 喚醒:Object 的 wait() 與 notify() 方法

    ⑤掛起:Thread 的 yield() 方法

 

 

4.同步鎖

  a.關鍵字:synchronized

  b.意義:當多個線程訪問同一資源的時候,有可能造成該資源資料混亂。

      為保證該資源每次只能被一個線程使用,使用完以後再交給下一個線程,我們要使用同步技術。

  c.同步的實現:

    ①同步方法:在資源身上加同步關鍵字synchronized

public synchronized void show(String name){}

    ②同步塊:在調用資源的線程身上使用synchronized

synchronized(this.rs){        this.rs.show(this.getName());}

 

  

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.