學習java線程學習筆記

來源:互聯網
上載者:User

標籤:


   線程:代碼執行的一個分支
          主要作用是提高了效率,cpu能同時執行多個部分的代碼。
      線程的建立:兩種方式
      a.繼承於thread類,重寫run方法。
      b.實現了runable介面,實現run方法。
      
            啟動線程必須用線程的start方法;如果直接調用線程的run方法則就是單線程了。
      有一個對象啟動兩個線程和兩個對象啟動兩個線程的區別:一個對象啟動兩個線程,兩個線程中的修改的內容始終是針對同一個對象的。兩個對象啟動
      兩個線程,線程中修改的內容是針對不同的對象。
      
    Thread類:部分方法
    start()  使該線程開始執行;JAVA 虛擬機器調用該線程的 run 方法。
    getPriority() 返回線程的優先順序。
    setPriority(int newPriority)  更改線程的優先順序。        
    currentThread()    返回對當前正在執行的線程對象的引用。         
    setName(String name)  改變線程名稱,使之與參數 name 相同。       
   
   線程的狀態:
    1.建立 :      new一個線程後線程處於建立狀態
    2.就緒 :      當一個線程調用了start方法之後 處於就緒狀態(注意太調用了此方法並不一定立刻去執行線程的方法)
    3.運行 :      線程在執行的run方法的時候處於運行狀態
    4.睡眠 :      線程調用了sleep方法之後處於休息狀態(此狀態當休息時間到了之後立刻就轉為就緒狀態)
    5.等待 :      線程調用了wait方法之後處於等待狀態。
    6.死亡 :      run方法執行完畢。
   等待狀態與睡眠時間狀態的區別:
                               睡眠狀態是時間到了自然處於就緒狀態,只有CPU分配了事件片,立刻就可以繼續執行。
                               等待狀態是如果沒有線程通知的話,等待狀態永遠醒不過來了.
      
      常用方法:
      a.currentTHread():靜態方法。擷取當前的線程。
      b.getName():擷取線程的名字
      c.setName():設定線程的名字(沒有設定則有預設的名字)
      d.sleep():讓線程休息一段時間。
      e.join():合并線程,讓兩個線程合并一個線程。
      f.yeild():當前線程讓出cpu,當前線程處於一個就緒狀態
      g.setPriority():設定線程的優先順序。預設的層級是5.優先順序從1~10;
      
      線程的同步: 多個線程同時執行某段代碼就會出現線程同步。此時結果不可預料.
          防止線程同步:採用synchronized關鍵字修飾需要進行同步的代碼。
        synchronized的原理:是對資源加一把鎖,當一個線程進入此資源執行代碼的時候,立刻加鎖,其他的線程
        執行處於等待狀態。一直到此線程釋放鎖後,其他線程才能進入此資源執行代碼。
              
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
     

學習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.