更新時間:2020-06-16 11:31:36 來源:動力節(jié)點 瀏覽2604次
多個進(jìn)程的內(nèi)部數(shù)據(jù)和狀態(tài)都是完全獨立的,而多線程是共享一塊內(nèi)存空間和一組系統(tǒng)資源,有可能互相影響.•線程本身的數(shù)據(jù)通常只有寄存器數(shù)據(jù),以及一個程序執(zhí)行時使用的堆棧,所以線程的切換比進(jìn)程切換的負(fù)擔(dān)要小。
多線程編程的目的,就是"最大限度地利用CPU資源",當(dāng)某一線程的處理不需要占用CPU而只和I/O等資源打交道時,讓需要占用CPU資源的其它線程有機會獲得CPU資源。從根本上說,這就是多線程編程的最終目的。
Java給多線程編程提供了內(nèi)置的支持。一條線程指的是進(jìn)程中一個單一順序的控制流,一個進(jìn)程中可以并發(fā)多個線程,每條線程并行執(zhí)行不同的任務(wù)。
多線程是多任務(wù)的一種特別的形式,但多線程使用了更小的資源開銷。
這里定義和線程相關(guān)的另一個術(shù)語-進(jìn)程:一個進(jìn)程包括由操作系統(tǒng)分配的內(nèi)存空間,包含一個或多個線程。一個線程不能獨立的存在,它必須是進(jìn)程的一部分。一個進(jìn)程一直運行,直到所有的非守護(hù)線程都結(jié)束運行后才能結(jié)束。
多線程能滿足程序員編寫高效率的程序來達(dá)到充分利用CPU的目的。
在Java中,類僅支持單繼承,也就是說,當(dāng)定義一個新的類的時候,它只能擴展一個外部類.這樣,如果創(chuàng)建自定義線程類的時候是通過擴展Thread類的方法來實現(xiàn)的,那么這個自定義類就不能再去擴展其他的類,也就無法實現(xiàn)更加復(fù)雜的功能。因此,如果自定義類必須擴展其他的類,那么就可以使用實現(xiàn)Runnable接口的方法來定義該類為線程類,這樣就可以避免Java單繼承所帶來的局限性。
實現(xiàn)Runnable接口相對于擴展Thread類來說,具有無可比擬的優(yōu)勢。這種方式不僅有利于程序的健壯性,使代碼能夠被多個線程共享,而且代碼和數(shù)據(jù)資源相對獨立,從而特別適合多個具有相同代碼的線程去處理同一資源的情況。這樣一來,線程、代碼和數(shù)據(jù)資源三者有效分離,很好地體現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計的思想。因此,幾乎所有的多線程程序都是通過實現(xiàn)Runnable接口的方式來完成的。
Java多線程基礎(chǔ)教程
Java多線程編程:http://www.ilovecolors.com.cn/javathread/
以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“多線程編程教程,Java多線程基本方法”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀