JAVA學習日誌(線程)

1.進程和線程


進程: 運行一個速度,程序在內存分配了運行空間

線程: 在進程中還運行,多個線程之間可以相互的切換。


問題 進程和線程的關係?

       進程包括線程。


2。單線程和多線程 JAVA搶佔)

單線程:只有一條路徑,必須等第一個執行了才能執行第二個。 比如 排隊吃飯。。。。 


wKioL1cZEI6Q2bqoAACmJG9Hjn8226.jpg

 

多線程: 有多條路徑 。。。 比如 食堂排隊的多個窗口。

wKioL1cZEKqBFKMRAAChU9HRIVc418.jpg


3.線程分爲主線程和子線程**

wKioL1cZELfRa0TyAAB0oB8ls0Y507.jpg

 

主線程就相當於遊戲中的主要任務。

子線程就相當於遊戲中的分支任務。


列題:

wKiom1cZEAWB9QLAAAInSqasVeI894.jpg


4.線程的優先級別 

   Java中共有10個級別,110個級別

   從低到高,但它不能與操作系統很好的兼容,比如Winw2000e  7個優先級別,並且不固定的所有希望能移植到各個的平臺中,那麼建議使用       Max-PRIOKIT

                              MIN-PRIOKIT

                              NORN-PRIOKIT 

 

  注: 高的級別是獲得較多的執行機會 

     低的級別是獲得較少的執行機會 

 


5.問題區 

問題   爲什麼一到要複寫Run方法??

Start方法自動調用了run方法, run方法中可以自動加入自己想要得一些功能。 

問題   直接調用run方法和調用stat的方法的區別? 

      Run()方法: 普通的方法 不能啓動線程

      Start()方法 : 啓動一個線程,自動的去調用run方法 

 

public final void join(

              throws InterruptedException

等待該線程終止。 

  

等線程終止 該線程結束後,才能往下執行  

 

public static void yield()暫停當前正在執行的線程對象,並執行其他線程。 

 禮讓,暫停當前正在執行的程序對象,並讓其他線程執行讓給相同優先級的或者是更高的。    

public static void sleep(long millis,int nanos)

                  throws InterruptedException在指定的毫秒數加指定的納秒數內讓當前正在執行的線程休眠(暫停執行),此操作受到系統計時器和調度程序精度和準確性的影響。該線程不丟失任何監視器的所屬權

 

守護線程

   setDaemon(布爾值設置是否爲守護線程  

   也就是前臺完成 後臺才能完成    

 比如:垃圾回收機制

 結束線程

 

         1 修改標誌  

  2 interrupt()

  3public void interrupt() 中斷線程。 

   

  如果當前線程沒有中斷它自己(這在任何情況下都是允許的),則該線程的 checkAccess 方法就會被調用,這可能拋出 SecurityException 

 

 

 

              3 引發異常 

:  儘量不要使用 stop (太過於霸道 會直接終止所有的運行 )和

 

 

併發訪問的問題   

數據的不準確性   

Synchronized 同步 

Synchronized this)同步塊; this同步當前對象  

Synchronized 同步方法

死鎖 !

wKioL1cZEQmCSsW7AAC-hWjskBg382.jpg



定義:死鎖是進程死鎖的簡稱,

例如:

在一條河上有一座橋,橋面較窄,只能容納一輛汽車通過,無法讓兩輛汽車並行。如果有兩輛汽車AB分別由橋的兩端駛上該橋,則對於A車來說,它走過橋面左面的一段路(即佔有了橋的一部分資源),要想過橋還須等待B車讓出右邊的橋面,此時A車不能前進;對於B車來說,它走過橋面右邊的一段路(即佔有了橋的一部分資源),要想過橋還須等待A車讓出左邊的橋面,此時B車也不能前進。兩邊的車都不倒車,結果造成互相等待對方讓出橋面,但是誰也不讓路,就會無休止地等下去 

 

線程的生命週期 

   新建: 創建線程對象  

   就緒: 有執行資格,沒有執行權,start(

   運行  有執行資格,有執行權

  wKioL1cZEVGCt1XDAAA5PzlhtMY920.jpg



 死亡: 線程對象變爲垃圾,等待回收 

wKiom1cZEOWDCULOAADZPUzUoGk912.jpg


發佈了43 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章