进程与线程(四) linux进程间通信的方式总结
2024-10-19 08:56:41
1概述:
上文说到,每个进程都有自己的地址空间,包括什么呢?向下生长得栈,向上生长的堆,代码段,数据段等,这些都是进程私有的,如何实现通信的呢?通信需要媒介,这个媒介很重要。
对于研发人员来说,进程不是孤立的,而是相互关联的一个整体,有一些进程需要团结协作来完成任务,所以首先他们就要通信,那通信的方式有哪些呢?首先我们粗略的知道以下几种:
1、管道:pipe 和named pipe.什么是管道?简单的说就是把一个进程的输出当做另一个进程的输入,后面再说。pipe:有亲缘关系的才能通信,named pipe: 没有亲缘关系的也能通信(通信的格式是字节流,无格式)
2.信号:有一本说上的说的好,那就是组成原理中的中断,信号是中断的一种封装(它承载的信息量很少)。
3。消息队列: 简单而言,把消息加入队列和取走信息,但是权限问题很重。
4信号量: OS上的PV操作,看看
5.socket :网络上不同主机进程通信,java网络编程重点。
以下就有5篇文章分别进行详略得当的描述,重点是信号量和socket。
ref:
http://www.ibm.com/developerworks/cn/linux/l-ipc/#toggle
最新文章
- MapReduce工作原理图文详解
- 线程(三)__Interrupt 、setDaemon()、join
- HDU 4348 To the moon 可持久化线段树
- 21335592 ROWS
- WPF-数据绑定:日期时间格式
- opencv视频播放
- JavaSE中Collection集合框架学习笔记(1)——具有索引的List
- Eclipse使用Git检出项目
- Django对于模型的数据操作
- 无法从带有索引像素格式的图像创建graphics对象
- 11.ingress服务
- java内存模型与volatile变量与Atomic的compareAndSet
- java构造函数修饰符
- 如何通过 Terminal 设置截图存储的位置
- RabbitMQ使用注意
- mysql更新表数据时报错 You can't specify target table 'RES_CATALOG_CLASSIFY' for update in FROM clause
- manacher模板
- Mac为nginx安装nginx-sticky-module
- go-002-语言结构
- asp.net如何实现负载均衡方案讨论
热门文章
- Windows下ANSI、Unicode、UTF8字符编码转换
- leetcode problem 10 Regular Expression Matching(动态规划)
- 禁止选择文本和禁用右键 v2.0
- 表格td、th强制换行
- STM32的GPIO
- BZOJ2191Splite
- Hbase案例分析(二)
- BZOJ 1634: [Usaco2007 Jan]Protecting the Flowers 护花
- hdu 4454 Stealing a Cake
- DJANGO:根据不同的环境,配置不同的SETTINGS文件,读取不同的DB,JENKINS,SALT配置