java 多線程編程

來源:互聯網
上載者:User

標籤:

一:線程的建立

1:編寫一個繼承Thread類的類,然後在後面重寫Thread類的run()方法。

步驟

a 建立一個繼承Thread的類

b在建立的Thread子類中重寫run()方法

c 建立Thread子類的執行個體

d通過調用該執行個體上的run()方法

2:編寫一個類實現Runable介面

a 建立一個實現Runable介面

b在IanyRunable實現介面的類中實現run()方法

c建立一個Runable類的執行個體

d建立一個Thread類,講Runable的執行個體作為構造器參數傳進去

e通過調用Thread類的執行個體start()方法

二:線程的生命週期

生命週期有幾個狀態

 

      新狀態:線程對象已經建立,還沒有在其上調用start()方法。 

      可運行狀態:當線程有資格運行,但發送器還沒有把它選定為運行線程時線程所處的狀態。當start()方法調用時,線程首先進入可運行狀態。線上程運行之後或者從阻塞、等待或睡眠狀態回來後,也返回到可運行狀態。 

      運行狀態:線程發送器從可運行池中選擇一個線程作為當前線程時線程所處的狀態。這也是線程進入運行狀態的唯一一種方式。 

      等待/阻塞/睡眠狀態:這是線程有資格運行時它所處的狀態。實際上這個三狀態組合為一種,其共同點是:線程仍舊是活的,但是當前沒有條件運行。換句話說,它是可啟動並執行,但是如果某件事件出現,他可能返回到可運行狀態。 

      死亡態:當線程的run()方法完成時就認為它死去。這個線程對象也許是活的,但是,它已經不是一個單獨執行的線程。線程一旦死亡,就不能複生。 如果在一個死去的線程上調用start()方法,會拋出java.lang.IllegalThreadStateException異常。

      線程睡眠 sleep(): 執行該方法可是當前的線程停止運行若干毫秒,線程由運行狀態進入不可運行狀態,睡眠時間過後繼續進入可運行狀態。

 三:解決線程同步的問題

1 使用同步塊 synchronized(取的鎖的對象){

}

2 使用synchronized的方法。

四:線程之間通過wait(),notify(),notifyAll()方法通訊。

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.