惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
InfoQ
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
B
Blog
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 聂微东
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
大猫的无限游戏
大猫的无限游戏
U
Unit 42
J
Java Code Geeks
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
腾讯CDC

博客园 - 路吾

VC 结束进程 typedef用法小结 用户中心 - 博客园 BOOL和bool的区别 变量定义与声明的区别 读书笔记:可行性个分析和需求分析(一) 如何防止在ListBox中添加很多数据出现不停的刷新? CComboBox控件使用 vc技巧 VC6.0 如何改变对话框背景色 用户中心 - 博客园 如何迈过职业生涯中的5个坎 云计算基本原理和概念 用户中心 - 博客园 通信控件MSComm使用详解 用VC++编写勾子程序 vc的Debug和release 用MFC实现文件拖放到ListBox VC中CreateProcess函数用法
进程间通信方法总结
路吾 · 2007-07-17 · via 博客园 - 路吾
 

进程介绍:

进程通常被定义为一个正在运行的程序的实例,它由两个部分组成:

1)操作系统用来管理进程的内核对象。

内核对象也是系统用来存放关于进程的统计信息的地方。

2)地址空间.

它包含所有的可执行模块或DLL模块的代码和数据。它还包含动态分配的空间。如线程堆栈和堆分配空间。每个进程被赋予它自己的虚拟地址空间,当进程中的一个线程正在运行时,该线程可以访问只属于它的进程的内存。属于其它进程的内存则是隐藏的,并不能被正在运行的线程访问。

两个进程之间进行通信方法:

1、 剪贴板Clipboard: 16位时代常使用的方式,CWnd中提供支持

2、 窗口消息标准的Windows消息以及专用的WM_COPYDATA消息 SENDMESSAGE()接收端必须有一个窗口

3、 使用共享内存方式(Shared Memory)

1.设定一块共享内存区域

2)找出共享内存

3)同步处理(Mutex)

4)清理(Cleaning up)

4、 动态数据交换(DDE

通过维护全局分配内存使的应用程序间传递成为可能。

5、 消息管道(Message Pipe)

1)匿名管道(Anonymous Pipes)

单向流动,并且只能够在同一电脑上的各个进程之间流动。

2)命名管道(Named Pipes)

双向,跨网络,任何进程都可以轻易的抓住,放进管道的数据有固定的格 式,而使用ReadFile()只能读取该大小的倍数

6、 邮件槽(Mailslots)

广播式通信,32系统中提供的新方法,可以在不同主机间交换数据,在 WIN9X下只支持邮件槽客户

7、 Windows套接字(Windows Socket)

它具备消息管道所有的功能,但遵守一套通信标准使的不同操作系统之上的应 用程序之间可以互相通信。

8Internet通信 它让应用程序从Internet地址上载或下载文件

9RPC:远程过程调用,很少使用,因其与UNIXRPC不兼容。

10、串行/并行通信(Serial/Parallel Communication)

它允许应用程序通过串行或并行端口与其他的应用程序通信

11COM/DCOM

通过COM系统的代理存根方式进行进程间数据交换,但只能够表现在对接口 函数的调用时传送数据,通过DCOM可以在不同主机间传送数据。