亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談Linux進(jìn)程間通信方式及優(yōu)缺點

 更新時間:2017年11月01日 15:03:29   作者:xinianbuxiu  
這篇文章主要介紹了淺談Linux進(jìn)程間通信方式及優(yōu)缺點,具有一定參考價值,需要的朋友可以了解下。

1)管道

管道分為有名管道和無名管道

無名管道是一種半雙工的通信方式,數(shù)據(jù)只能單向流動,而且只能在具有親緣關(guān)系的進(jìn)程間使用.進(jìn)程的親緣關(guān)系一般指的是父子關(guān)系。無明管道一般用于兩個不同進(jìn)程之間的通信。當(dāng)一個進(jìn)程創(chuàng)建了一個管道,并調(diào)用fork創(chuàng)建自己的一個子進(jìn)程后,父進(jìn)程關(guān)閉讀管道端,子進(jìn)程關(guān)閉寫管道端,這樣提供了兩個進(jìn)程之間數(shù)據(jù)流動的一種方式。

有名管道也是一種半雙工的通信方式,但是它允許無親緣關(guān)系進(jìn)程間的通信。

2)信號量

信號量是一個計數(shù)器,可以用來控制多個線程對共享資源的訪問.,它不是用于交換大批數(shù)據(jù),而用于多線程之間的同步.它常作為一種鎖機制,防止某進(jìn)程在訪問資源時其它進(jìn)程也訪問該資源.因此,主要作為進(jìn)程間以及同一個進(jìn)程內(nèi)不同線程之間的同步手段.

Linux提供了一組精心設(shè)計的信號量接口來對信號進(jìn)行操作,它們不只是針對二進(jìn)制信號量,下面將會對這些函數(shù)進(jìn)行介紹,但請注意,這些函數(shù)都是用來對成組的信號量值進(jìn)行操作的。它們聲明在頭文件sys/sem.h中。

semget函數(shù)

它的作用是創(chuàng)建一個新信號量或取得一個已有信號量

semop函數(shù)

它的作用是改變信號量的值

semctl函數(shù)

該函數(shù)用來直接控制信號量信息

3)信號

信號是一種比較復(fù)雜的通信方式,用于通知接收進(jìn)程某個事件已經(jīng)發(fā)生.

4)消息隊列

消息隊列是消息的鏈表,存放在內(nèi)核中并由消息隊列標(biāo)識符標(biāo)識.消息隊列克服了信號傳遞信息少,管道只能承載無格式字節(jié)流以及緩沖區(qū)大小受限等特點.消息隊列是UNIX下不同進(jìn)程之間可實現(xiàn)共享資源的一種機制,UNIX允許不同進(jìn)程將格式化的數(shù)據(jù)流以消息隊列形式發(fā)送給任意進(jìn)程.對消息隊列具有操作權(quán)限的進(jìn)程都可以使用msget完成對消息隊列的操作控制.通過使用消息類型,進(jìn)程可以按任何順序讀信息,或為消息安排優(yōu)先級順序.

5)共享內(nèi)存

共享內(nèi)存就是映射一段能被其他進(jìn)程所訪問的內(nèi)存,這段共享內(nèi)存由一個進(jìn)程創(chuàng)建,但多個進(jìn)程都可以訪問.共享內(nèi)存是最快的IPC(進(jìn)程間通信)方式,它是針對其它進(jìn)程間通信方式運行效率低而專門設(shè)計的.它往往與其他通信機制,如信號量,配合使用,來實現(xiàn)進(jìn)程間的同步與通信.

6)套接字

socket,即套接字是一種通信機制,憑借這種機制,客戶/服務(wù)器(即要進(jìn)行通信的進(jìn)程)系統(tǒng)的開發(fā)工作既可以在本地單機上進(jìn)行,也可以跨網(wǎng)絡(luò)進(jìn)行。也就是說它可以讓不在同一臺計算機但通過網(wǎng)絡(luò)連接計算機上的進(jìn)程進(jìn)行通信。也因為這樣,套接字明確地將客戶端和服務(wù)器區(qū)分開來。

套接字的特性由3個屬性確定,它們分別是:域、類型和協(xié)議。

可用于不同及其間的進(jìn)程通信

總結(jié)

以上就是本文關(guān)于淺談Linux進(jìn)程間通信方式及優(yōu)缺點的全部內(nèi)容,希望對大家有所幫助。歡迎參閱:Linux十個新手命令分享、Linux下文件的切分與合并的簡單方法介紹、詳解Docker使用Linux iptables 和 Interfaces管理容器網(wǎng)絡(luò)等,感謝朋友們對本站的支持!

相關(guān)文章

  • 清除指定squid緩存文件的腳本代碼分享

    清除指定squid緩存文件的腳本代碼分享

    Squid web緩存加速軟件目前已經(jīng)是新浪、搜狐、網(wǎng)易等各大網(wǎng)站廣泛應(yīng)用。Squid會在設(shè)置的緩存目錄下建立多個目錄,每一個目錄下又建立多個目錄,然后才在最里層的目錄中存放緩存文件(object)
    2012-02-02
  • 解決atd服務(wù)報錯Failed with result‘exit-code‘問題

    解決atd服務(wù)報錯Failed with result‘exit-code‘問題

    在isoftserveros-v5.1-oe1-aarch64系統(tǒng)中,安裝at軟件包后,由于手動執(zhí)行導(dǎo)致atd守護(hù)進(jìn)程出錯,通過查看后臺Process行,手動kill原atd進(jìn)程,使用systemctl重啟atd服務(wù)后,問題得以解決,此經(jīng)驗可為類似情況提供參考
    2024-09-09
  • 如何在Apache和Nginx禁止上傳目錄里PHP的執(zhí)行權(quán)限

    如何在Apache和Nginx禁止上傳目錄里PHP的執(zhí)行權(quán)限

    這篇文章主要介紹了如何在Apache和Nginx禁止上傳目錄里PHP的執(zhí)行權(quán)限的具體方法,非常簡單,有需要的小伙伴可以參考下
    2016-10-10
  • Ubuntu常見錯誤問題的解決方法小結(jié)

    Ubuntu常見錯誤問題的解決方法小結(jié)

    最近經(jīng)常使用ubuntu,難免會遇到各種各樣的問題。所以想著記錄下來,方便自己和大家以后需要的時候查看參考,文中介紹的很詳細(xì),相信對大家學(xué)習(xí)或者使用Ubuntu能有一定的參考借鑒價值,感興趣的朋友們下面來一起看看吧。
    2016-11-11
  • 手把手教你配置一臺Linux虛擬機

    手把手教你配置一臺Linux虛擬機

    這篇文章主要手把手教你配置一臺Linux虛擬機,具有一定的參考價值和實用價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 快速解決linux下中文輸入法問題

    快速解決linux下中文輸入法問題

    這篇文章主要介紹了linux下中文輸入法問題及解決方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • apache中偽靜態(tài)配置和使用(Apache虛擬主機下Discuz偽靜態(tài))

    apache中偽靜態(tài)配置和使用(Apache虛擬主機下Discuz偽靜態(tài))

    apache中偽靜態(tài)配置和使用(Apache虛擬主機下Discuz偽靜態(tài)),需要的朋友可以參考下。
    2012-01-01
  • Ubuntu16.04上安裝CUDA9.0 詳細(xì)教程

    Ubuntu16.04上安裝CUDA9.0 詳細(xì)教程

    這篇文章主要介紹了Ubuntu16.04上安裝CUDA9.0 詳細(xì)教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Linux系統(tǒng)命令中tree命令詳解

    Linux系統(tǒng)命令中tree命令詳解

    tree命令以樹狀圖列出文件目錄結(jié)構(gòu)。不過某些Linux上(Centos 6.4)沒有tree命令,下面這篇文章將先進(jìn)行介紹安裝方法,然后詳細(xì)介紹tree命令的使用,有需要的朋友們可以參考借鑒,下面跟著小編來一起看看吧。
    2016-12-12
  • linux之centos7防火墻基本使用詳解

    linux之centos7防火墻基本使用詳解

    這篇文章主要介紹了linux之centos7防火墻基本使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02

最新評論