20165302第八週總結

20165302第八週總結

進程與線程java

線程是比進程更小的執行單位,一個進程在其執行過程當中,能夠產生多個線程,造成多條執行線索,沒有進程就不會有線程,就像沒有操做系統就不會有進程同樣git

main線程操作系統

  • 當JVM加載代碼,發現main方法後,就會啓動一個線程,稱爲main線程,負責執行main方法

線程的進程與生命週期線程

  • 新建
  • 運行
  • 中斷:有四種緣由的中斷:JVM將CPU資源從當前線程切換給其餘線程,使本線程讓出CPU的使用權處於中斷狀態。線程使用CPU資源期間,執行了sleep(intmillsecond)方法,使當前線程進入休眠狀。
    線程使用CPU資源期間,執行了wait()方法。
    線程使用CPU資源期間,執行某個操做進入阻塞狀態。
  • 死亡

線程的經常使用方法對象

  • start(): 線程調用該方法將啓動線程,使之重新建狀態進入就緒隊列排隊,一旦輪到它來享用CPU資源時,就能夠脫離建立它的線程獨立開始本身的生命週期了。
  • run(): Thread類的run()方法與Runnable接口中的run()方法的功能和做用相同,都用來定義線程對象被調度以後所執行的操做,都是系統自動調用而用戶程序不得引用的方法。
  • sleep(int millsecond): 優先級高的線程能夠在它的run()方法中調用sleep方法來使本身放棄CPU資源,休眠一段時間。
  • isAlive(): 線程處於「新建」狀態時,線程調用isAlive()方法返回false。在線程的run()方法結束以前,即沒有進入死亡狀態以前,線程調用isAlive()方法返回true。
  • currentThread():該方法是Thread類中的類方法,能夠用類名調用,該方法返回當前正在使用CPU資源的線程。
  • interrupt() :一個佔有CPU資源的線程可讓休眠的線程調用interrupt()方法「吵醒」本身,即致使休眠的線程發生InterruptedException異常,從而結束休眠,從新排隊等待CPU資源。

線程的同步blog

  • 多個線程調用synchronized方法機制:當一個線程使用synchronized方法時,其餘線程想使用這個方法時就必須等待

線程聯合接口

  • A在佔有CPU資源期間一旦聯合B,能夠用B.join()讓其餘線程和本線程聯合

協調同步的線程生命週期

  • wait() 方法能夠中斷方法的執行,使本線程等待,暫時讓出CPU的使用權,並容許其它線程使用這個同步方法。
  • notifyAll() 方法通知全部的因爲使用這個同步方法而處於等待的線程結束等待。曾中斷的線程就會從剛纔的中斷處繼續執行這個同步方法,並遵循「先中斷先繼續」的原則。
  • notify() 方法只是通知處於等待中的線程的某一個結束等待。

守護線程隊列

  • 線程調用void setDaemon(boolean on)方法能夠將本身設置成一個守護線程

代碼託管進程

相關文章
相關標籤/搜索