1. 程式人生 > >程式.執行緒.程序

程式.執行緒.程序

程式程序執行緒的概念:

程式:是為完成特定任務,用某種語言編寫的一組指令的集合.即指一段靜態的程式碼.靜態物件



程序:是程式的一次執行的過程,或正在執行的一個程式.動態的過程.她有自身的產生.存在.和消亡的過程,是動態的



執行緒:程序可進一步細化為執行緒,是一個程式內部的一條執行路徑

  若一個程序可同時執行多個執行緒,就是正吃多執行緒的

 

thread的常用方法:

1.  start() 啟動執行緒,並執行相應的run()方法

2. run() 子執行緒要執行的程式碼放在run()方法中

3. currentThread() 靜態的,調取當前的執行緒

4. getName() 設定此執行緒的名字 5. setName() 設定此執行緒的名字 6. yield() 呼叫此方法的執行緒釋放當前CPU的執行權
7. join() 在A執行緒中呼叫B執行緒的jion方法,表示:當執行到此方法,A執行緒停止,直至B執行緒完畢,A執行緒再接著jion()之後的程式碼執行
8. isAlive() 判斷當前執行緒是否還存活
9. sleep(long L) 顯示的讓當前執行緒睡眠L毫秒

 

多執行緒的優點:

1提高應用程式的響應,對影象化介面更有意義.可增強使用者的體驗

2提高計算機系統cpu的利用率

3改善程式結構,將即長又複雜的程序分為多個執行緒,獨立執行,利於理解和修改

 

多執行緒的安全問題

當多條語句在操作同一個執行緒共享資料時,一個執行緒對多條語句執行了一部分,還沒有執行完,另一個執行緒參與進來.導致共享資料的錯誤,.
(一個執行緒在操作共享資料的過程,未執行完畢的情況下,另外的執行緒參與進來,導致共享資料出現問題) 解決辦法:對多條操作共享資料的語句,只能讓一個執行緒都執行完,在執行過程中其他執行緒不可以參與執行

JAVA對於多執行緒的安全問題提供了專業的解決方式:

  一:同步程式碼塊
    1 synchronized(同步監視器(物件)){
      //需要被同步的程式碼塊
    }
    同步監視器:有一個類的物件來充當.那個執行緒獲取此監視器,會就執行.俗稱"鎖"

    2 synchronize還可以放在方法宣告中,表示整個方法為同步方法
      例如:
      public synchronize void show(String name){}