java知識總結(3)——線程

來源:互聯網
上載者:User

1、線程是進程中的一條執行路徑。進程是系統中正在啟動並執行程式。(進出是一個靜態概念,線程是一個動態概念。)

2、開啟一個新的線程的方法:

a、繼承Thread類,並且重寫Thread中的run方法。

b、實現Runnable介面。

注意:開啟新線程是通過調用start方法,而直接調用run方法只是一般得方法調用。

3、線程狀態的轉換:

4、線程式控制制基本方法

isAlive()判斷線程是否還“活著”,即線程是否還未終止。

getPriority()獲得線程的優先順序數值。

setPriority()設定線程的優先順序數值。

Thread.sleep()見當前線程睡眠指定毫秒數。

join()調用某線程的該方法,將當前線程與該線程“合并”,即等待該線程    結束,再回複當前線程的運行。

yield()讓出CPU,當前線程進入就緒隊列等待調度。(只讓一次)

wait()但其線程進入對象的wait pool。

notify()/notifyAll()喚醒對象的waitpool中的一個/所有等待線程。

注意:線程的優先順序取值範圍1到10,預設為5。

5、線程同步是為了防止多個線程訪問同一個資料對象時,對資料造成破壞。

實現線程同步的方法:

a、代碼塊鎖定:

synchronized(this){......}

b、方法鎖定:

public synchronised voidXXX(...){......}

6、線程死結:是一種少見的、而且難於調試的錯誤,在兩個線程對象對兩個同步對象具有循環相依性時,就會出現死結現象。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.