多線程講解

來源:互聯網
上載者:User

      今天複習了流的知識。主要講解了多線程的概念以及如何使用多線程。線程的周期和狀態。

一、    多線程的概念

a)      程式與進程  進程也稱任務,支援多個進程同時執行的OS就被稱為多進程OS或多任務OS。

b)      進程與線程:在一個程式內部也可以實現多個任務並發執行,其中每個任務稱為線程。線程是比進程更小的執行單位,它是在一個進程中獨立的控制流程,即程式內部的控制流程。

c)       線程:特點:線程不能獨立運行,必須依賴於進程,在進程中運行。每個程式至少有一個線程稱為主線程。單線程:只有一條線程的進程稱為單線程。多線程:有不止一個線程的進程稱為多線程

d)      開啟多線程的優點和缺點

                      i.             提高介面程式響應速度。通過使用線程,可以將需要大量時間完成的流程在後台啟動單獨的線程完成,提高前台介面的相應速度。

                    ii.             充分利用系統資源,提高效率。通過在一個程式內部同時執行多個流程,可以充分利用CPU等系統資源,從而最大限度的發揮硬體的效能。

                 iii.             當程式中的線程數量比較多時,系統將花費大量的時間進行線程的切換,這反而會降低程式的執行效率。但是,相對於優勢來說,劣勢還是很有限的,所以現在的項目開發中,多線程編程技術得到了廣泛的應用。

二、    多線程實現  實現方法:繼承Thread類、實現Runnable介面、使用Timer和TimerTask組合

a)       繼承Thread線程類實現多線程   重寫Thread中的run()方法。 靜態方法sleep(毫秒數)。使系統休眠多少毫秒

class   MyThread extends Thread{

        public void run(){

                //線程體

         }

   }

b)       實現Runnable介面

                       i.             多線程對象實現java.lang.Runnable介面並且在該類中重寫Runnable介面的run方法。

                     ii.              實現Runable介面的方法避免了單繼承的局限性。

class  MyThread2 implements Runable{

public void run(){}   //重寫Runable介面中的run()方法

}

MyThread2 mt1=newMyThread2();

Thread t1=new Thread(mt1);

t1.start();           //啟動線程

三、線程的生命週期

線程是一個動態執行的過程,它也有一個從產生到死亡的過程,這就是所謂的生命週期。一個線程在它的生命週期內有5種狀態:

建立  Thread  t1=new Thread();

就緒  t1.start()

運行   線程獲得CPU資源正在執行任務(run()方法),

死亡   自然終止:正常運行run()方法後終止

            異常終止:調用stop()方法讓一個線程終止運行

堵塞   sleep()方法。使線程進入睡眠方式。

            正在等待:調用wait()方法。

被另一個線程所阻塞:調用suspend()方法。(調用resume()方法恢複)

聯繫我們

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