Java線程,java多線程

來源:互聯網
上載者:User

Java線程,java多線程
線程、進程概念:
進程:      在Java語言中,當用Java命令執行.class檔案或執行.exe檔案,會首先將程式碼Load到記憶體區,然後由作業系統找到程式碼的入口(main方法)開始執行程式。以上是關於Java程式執行過程的記憶體分析的內容。當把程式碼Load到記憶體區時,已經算是一個進程了,這時它並沒有執行,這裡強調進程是個靜態的概念。我個人認為,如果強調它是個靜態概念,就把進程和線程割裂開來說了。把進程解釋為記憶體中啟動並執行應用程式也未為不可。儘管我們常說的進程開始執行了,實質上是程式中的主線程開始執行了。線程:
      是一個程式中不同的執行路徑。多進程:
       同時在記憶體中運行多個應用程式。多線程:
       對於單個CPU,實質上是不存在多線程的。CPU只能輪換處理多個線程,在某一時刻,只能處理一個線程,但是因為處理的速度極快,人根本感覺不到它輪換處理線程的時間差,所以給人的感覺是“同時”在執行多個線程,這也就是分時複用。對於多個CPU,才會存在多線程。
線程建立和啟動:
線程定義和線程執行個體化(兩種方式)       1.子類繼承Thread,重寫Run方法------>new 子類()       2.實現Runnable介面------>調用Thread構造方法new Thread(Runnable target)線程啟動       調用Thread對象的Start方法
線程狀態轉換:
      新狀態:線程對象已經建立,但還沒有調用start()方法      就緒狀態:調用start()方法,但發送器還沒有把它選定為啟動並執行線程(即還沒有調用Run方法)      運行狀態:被選定為當前執行的線程,執行Run方法      阻塞/等待/睡眠狀態:某種事件發生,線程進入阻塞狀態,帶阻塞解除,重新回到就緒狀態,等待調度。      死亡態:線程的Run方法完成時,就認為它死去。
線程式控制制方法:
      1.睡眠      Thread.sleep()      使當前正在執行的線程暫停執行,開始睡眠,睡眠指定時間長度後,自動蘇醒,進入就緒狀態,而不是運行狀態。     2.設定線程優先順序
      setPriority()      3.線程讓步      Yield()理論上是讓具有相同優先順序的線程具有啟動並執行機會,本身由當前執行的線程從運行狀態回到就緒狀態,但是可能會被再次選中,並不能保證真正的讓步。      4.線程合并      在一個A線程中如果加入B線程.Join,則A線程會等B線程執行完,才執行。

線程同步和鎖機制:
       synchronized關鍵字       Java語言的關鍵字,可用來給對象和方法或者代碼塊加鎖,當它鎖定一個方法或者一個代碼塊的時候,同一時刻最多隻有一個線程執行這個段代碼。       當兩個並發 線程訪問同一個對象object中的這個加鎖同步代碼塊時,一個時間內只能有一個線程得到執行。另一個線程必須等待當前線程執行完這個代碼塊以後才能執行 該代碼塊。       然而,當一個線程訪問object的一個加鎖代碼塊時,另一個線程仍然可以訪問該object中的非加鎖代碼塊。
       當一個線程訪問object的一個synchronized(this)同步代碼塊時,其他線程對object中所有其它synchronized(this)同步代碼塊的訪問將被阻塞。
       Wait釋放當前線程在該對象上所獲得的鎖       當一個線程獲得了對象的鎖之後,即使該線程在Sleep,也不會釋放這個鎖。
總結:      
      這章的痛點是對線程同步的理解與運用,不過,明白線程同步發生的情境,並把握住synchronized關鍵字的作用,也就是上述的幾條,理解起來也就容易了些。




聯繫我們

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