基礎補充-多線程-理論篇

多線程 理論篇編程

多線程則擴展了多進程的概念,使得同一個進行能夠同時併發處理多個任務。線程(Thread)也被稱做輕量級進程(Ligheweight Process),線程是進程的執行單元。就象進程在操做系統中的地位同樣,線程在程序中是獨立的、併發的執行流。當進程被初始化後,主線程就被建立了。對於絕大多數的應用程序來講,一般僅要求有一個主線程,但咱們也能夠在該進程內建立多條順序執行流,這些順序執行流就是線程,每條線程也是互相獨立的。
線程是進程的組成部分,一個進程能夠擁有多個線程,一個線程必須有一個父進程。線程能夠擁有本身的堆棧、本身的程序計數器和本身的局部變量,但再也不擁有系統資源,它與父進程的其它線程共享該進程所擁有的所有資源。由於多個線程共享父進程裏的所有資源,所以編程更加方便;但必須更加當心,咱們必須確保線程不會妨礙同一進程裏的其它線程。
線程能夠完成必定的任務,可與其餘線程共享父進程中的共享變量及部分環境、相互之間協同來完成進程所要完成的任務。
簡而言之:一個程序運行後至少有一個進程,一個進程裏能夠包含多個線程,但至少包含一個線程。
 多線程

•採用實現Runnable接口方式的多線程:併發

–線程類只是實現了Runnable接口,還能夠能夠繼承其餘類。this

–在這種方式下,能夠多個線程共享同一個target對象,因此很是適合多個相同線程來處理同一份資源的狀況,從而能夠將CPU,代碼和數據分開,造成清晰的模型,較好地體現了面向對象的思想。操作系統

–劣勢是:編程稍稍複雜,若是須要訪問當前線程,必須使用Thread.currentThread()方法。線程

•採用繼承Thread類方式的多線程:對象

–劣勢是:由於線程類已經繼承了Thread類,因此不能再繼承其餘父類。繼承

–優點是:編寫簡單,若是須要訪問當前線程,無需使用Thread.currentThread()方法,直接使用this便可得到當前線程。接口

相關文章
相關標籤/搜索