初解Java中的線程,解Java線程

來源:互聯網
上載者:User

初解Java中的線程,解Java線程
線程與進程的區別:
    進程(process)本質上是一個執行的程式,每個進程有獨立的代碼和資料空間。基於進程的多任務處理的特點是允許你的電腦同時運行兩個或更多的程式。舉例來說,就是你的電腦在運行QQ的同時還可以飛信等其它應用程式。在基於進程的多任務處理中,程式是發送器所指派的最小代碼單位。

    線程(thread-based) 是一個程式內部的順序控制流程。可以看成是輕量的進程,同一線程共用代碼和資料空間。簡單來說就是你用酷狗聽著音樂,同時還可以搜尋自己喜歡的歌。


線程的優先順序:
    Java給每個線程安排優先順序以決定與其他線程比較時該如何對待該線程。線程的優先順序就是是用來決定何時從一個啟動並執行線程切換到另一個(即上下文轉換)
    轉換規則:

    1.線程可以自動放棄控制。在I/O未決定的情況下,睡眠或阻塞由明確的讓步來完成。在這種假定下,所有其他的線程被檢測,準備啟動並執行最高優先順序線程被授予CPU。

    2.線程可以被高優先順序的線程搶佔。在這種情況下,低優先順序線程不主動放棄,處理器只是被先佔——無論它正在幹什麼——處理器被高優先順序的線程佔據。基本上,一旦高優先順序線程要運行,它就執行。這叫做有優先權的多任務處理。


線程的建立:
    第一種:實現Runnable介面

    第二種:定義Thead的子類重寫其run方法

    這兩種方法的選擇,當我們不需要重載Thead類的其他方法時最好使用第一種。因為Thread類定義了多種方法可以被衍生類別重載。對於所有的方法,惟一的必須被重載的是run()方法。而這正是實現Runnable介面所需的同樣的方法。所以不需重載其他方法時只實現介面即可。

    

控制線程的方法:

    

  

    與其它語言不同的是Java中是內建支援多線程的,多線程是以後大中型軟體開發中經常用到的。有了基礎的知識,多多動手寫代碼加深了對這些知識的理解。


聯繫我們

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