多線程(1)——認識瞭解多線程

多線程(1)——認識瞭解多線程

多線程、併發編程的本質:

多線程本質上就是併發編程,併發編程的本質是最大化使用硬件的性能。理解性能,就要解決什麼是進程的問題。python

Java與多線程:

Java是爲數很少的支持多線程併發編程的開發語言,因此Java在總體的效率上是最高的。算法

進程:

① 一個具備必定獨立功能的程序關於某個數據集合的一次運行活動;編程

② 是系統進行資源分配和調度的基本單位多線程

③ 是操做系統結構的基礎。併發

多進程:

指的是在沒有擴展原始系統硬件資源的狀況下,利用一些算法,能夠實現多個進程的並行執行,在同一個時間段上,有多個進程併發執行,可是在同一個時間點上只會有一個進程執行。編程語言

 

 

 線程和進程的關係:

  線程是在進程基礎上的進一步劃分,能夠達到更快的性能,任何一個進程的啓動速度實際上都是很是緩慢的。因此線程本質上的設計性能上要遠遠高於進程,可是線程是不可能離開進程存活的性能

進程與CPU:

一個進程的執行都必須有一個獨立支持他的CPU,因此全部的資源共享裏面,只有CPU是沒法進行共享的,每個進程都只有一個本身的中央處理單元。 若是要想實現CPU 的共享,那麼就必須利用線程來描述。spa

拓展:

  硬件的 CPU中出現了多核的狀態,理論上多核CPU的多進程執行成爲並行編程,並不是全部的CPU均可以超出若干個線程出來,通常來說,每一塊CPU只會有一個線程執行,可是有一些CPU可使用超線程技術,設計出若干個多線程的執行狀態。操作系統

  在進程和線程的概念之上實際上還有一個所謂的「纖程」,在線程基礎上的進一步劃分,按時有一些地方也把纖程稱做「協程」。,Java沒有支持多協程編程(之後不必定)。如今常見的編程語言裏面:Kotlin(Android第二代產品)和python都是支持多協程編程的。線程

記憶方法:

  單CPU叫併發,多CPU叫並行。

相關文章
相關標籤/搜索