天天看點

LINUX多線程1---線程的概念

一、什麼是線程

程序:一個正在執行的程式,它是資源配置設定的最小機關

程序中的事情需要按照一定的順序逐個進行,那麼如何讓一個程序中的一些事情同時執行?伺服器的例子

線程:有時又稱輕量級程序,程式執行的最小機關,系統獨立排程和分派cpu的基本機關,它是程序中的一個實體。一個程序中可以有多個線程,這些線程共享程序的所有資源,線程本身隻包含一點必不可少的資源。

程序出現了很多弊端,一是由于程序是資源擁有者,建立、撤消與切換存在較大的時空開銷,是以需要引入輕型程序;二是由于對稱多處理機(SMP)出現,可以滿足多個運作機關,而多個程序并行開銷過大。

二、線程術語

并發是指在同一時刻,隻能有一條指令執行,但多個程序指令被快速輪換執行,使得在宏觀上具有多個程序同時執行的效果。 看起來同時發生

并行是指在同一時刻,有多條指令在多個處理器上同時執行。真正的同時發生

同步:彼此有依賴關系的調用不應該“同時發生”,而同步就是要阻止那些“同時發生”的事情

異步的概念和同步相對,任何兩個彼此獨立的操作是異步的,它表明事情獨立的發生

三、多線程的優勢

1、在多處理器中開發程式的并行性

2、在等待慢速IO操作時,程式可以執行其他操作,提高并發性

3、子產品化的程式設計,能更清晰的表達程式中獨立事件的關系,結構清晰

4、占用較少的系統資源

多線程不一定要多處理器

繼續閱讀