一、前言
每個(gè)進(jìn)程各自有不同的用戶地址空間,任何一個(gè)進(jìn)程的全局變量在另一個(gè)進(jìn)程中都看不到,所以進(jìn)程之間要交換數(shù)據(jù)必須通過(guò)內(nèi)核,在內(nèi)核中開辟一塊緩沖區(qū),進(jìn)程A把數(shù)據(jù)從用戶空間拷貝到內(nèi)核緩沖區(qū),進(jìn)程B再?gòu)膬?nèi)核緩沖區(qū)把數(shù)據(jù)讀走,內(nèi)核提供的這種機(jī)制稱為進(jìn)程間通信。
二、管道
管道是一種半雙工的通信方式。
1.匿名管道
只能在有聯(lián)系的進(jìn)程間進(jìn)行通信(比如父子)
2.命名管道
可以在無(wú)聯(lián)系的進(jìn)程間進(jìn)行通信


管道.rar: https://url18.ctfile.com/f/7715018-957899148-39e00e?p=6511 (訪問(wèn)密碼: 6511)
三、socket
Socket不僅可以跨網(wǎng)絡(luò)和不同主機(jī)進(jìn)行進(jìn)程間通信,還可以在同一主機(jī)進(jìn)行進(jìn)程間通信。

套接字.rar: https://url18.ctfile.com/f/7715018-957902811-f5161d?p=6511 (訪問(wèn)密碼: 6511)
四、共享內(nèi)存
共享內(nèi)存就是映射一段能被其它進(jìn)程所訪問(wèn)的內(nèi)存,這段共享內(nèi)存由一個(gè)進(jìn)程創(chuàng)建,但多個(gè)進(jìn)程都可以訪問(wèn)。

共享內(nèi)存.rar: https://url18.ctfile.com/f/7715018-957899142-5b577c?p=6511 (訪問(wèn)密碼: 6511)
五、信號(hào)量
信號(hào)量是一個(gè)計(jì)數(shù)器,可以用來(lái)控制多個(gè)進(jìn)程對(duì)共享資源的訪問(wèn)。它常作為一種鎖機(jī)制,防止某進(jìn)程正在訪問(wèn)共享資源時(shí),其他進(jìn)程也訪問(wèn)該資源。因此,主要作為進(jìn)程間以及同一進(jìn)程內(nèi)不同線程之間的同步手段。

信號(hào)量.rar: https://url18.ctfile.com/f/7715018-957899160-e52314?p=6511 (訪問(wèn)密碼: 6511)
六、文件映射
將文件映射到進(jìn)程指定內(nèi)存,對(duì)內(nèi)存的操作,就是對(duì)文件的操作,從而避免頻繁的對(duì)文件進(jìn)行讀寫的操作,并且操作效率比文件讀寫效率高很多,也能通過(guò)文件映射進(jìn)行進(jìn)程通信。

文件映射.rar: https://url18.ctfile.com/f/7715018-957965340-e701ae?p=6511 (訪問(wèn)密碼: 6511)
七、消息隊(duì)列
消息隊(duì)列是由消息的鏈表,存放在內(nèi)核中并由消息隊(duì)列標(biāo)識(shí)符標(biāo)識(shí)。消息隊(duì)列克服了信號(hào)量傳遞信息少、管道只能承載無(wú)格式字節(jié)流以及緩沖區(qū)大小受限等缺點(diǎn)。
1.CreateFile()創(chuàng)建發(fā)送接收消息隊(duì)列

2.CreateMutex() 或 CreateSemaphore() 實(shí)現(xiàn)

3.通過(guò)窗口傳遞消息

消息隊(duì)列.rar: https://url18.ctfile.com/f/7715018-958480335-0570bc?p=6511 (訪問(wèn)密碼: 6511)
八、油槽
油槽不支持廣播通信,其是一種單向數(shù)據(jù)傳輸?shù)姆?wù),即服務(wù)器接收,客戶端發(fā)送的進(jìn)程間通信的方式,和socket有點(diǎn)類似。

油槽.rar: https://url18.ctfile.com/f/7715018-958480338-1cb49c?p=6511 (訪問(wèn)密碼: 6511)
九、結(jié)語(yǔ)
有什么不懂得可以問(wèn)小編,反正小編也不會(huì)解答。更多win32api精彩文章持續(xù)輸出,大家拭目以待,希望大家多多支持。