天天看點

線程 程序 差別

差別和聯系:

1、程序是獨立運作的實體,有獨立的資源配置設定;

2、同一程序的線程之間共享程序的資源;

3、所有的程序至少有一個執行線程;

4、線程的建立和切換代價比程序的小;

線程間的通信方法:

1、同一程序的線程之間通信的最簡單辦法就是使用全局變量;

2、不同程序的線程之間通信需要通過下面程序間的通信來實作;

程序間的通信方法:

1、管道

2、信号量

3、共享記憶體

4、消息隊列

5、套接字

----------------------------------------------------------------------------------------------------------

qbjxiaolei | 四級

程序是線程的容器,程序提供資源,記憶體。裡面的線程利用程序的資源,記憶體執行代碼。多線程是一個程序裡面包含多個線程,他們共享程序裡面的資源和記憶體空間,是以多個線程可以通過全局變量進行通信。多程序通信就必須系統調用産生程序共享的記憶體,也可以用檔案,可以通過網絡等方法。

----------------------------------------------------------------------------------------------------------

程式的一次執行叫一個程序,每個程序有獨立的堆棧段、代碼段、資料段。而且程序是系統進行資源配置設定和排程的最小機關,多程序之間是擁有獨立的記憶體單元的。

線程是程序的一個實體,是CPU排程和分派的基本機關,可以和隸屬與同一個程序的其它線程共享程序所擁有的全部資源。同一個程序中的多個線程可以并發執行,多線程之間擁有共享的記憶體單元,這樣以提高執行效率。

這樣說吧,一個程式至少包含一個程序,一個程序至少包含一個線程。

程序的建立:fork()

線程的建立:pthread_create()

程序間通信主要是管道、消息隊列、信号量等等,搜縮關鍵字IPC一大把,這裡就不說了。

同一程序的線程間通信主要是全局變量,上面說了,這些線程之間擁有共享的記憶體單元嘛,也就是共享的資料段。

而不同程序的線程間的通信,主要是借助了程序間通信的機制實作了啊