首页 > 系统相关 >进程间通信-IPC

进程间通信-IPC

时间:2022-11-23 17:44:16浏览次数:61  
标签:IPC 博客 间通信 信号量 进程 共享内存

IPC进程间通信_顺其自然~的博客-CSDN博客_ipc通信

1. 进程间通信(IPC)——管道

(36条消息) 进程间通信(IPC)——管道_牵猫散步的鱼儿的博客-CSDN博客_ipc管道

(37条消息) 进程间通信(IPC):管道_♚陌上花开的博客-CSDN博客_ipc 管道通讯

 

 

2.IPC之FIFO(有名管道)详解

(36条消息) IPC之FIFO(有名管道)详解_带鱼兄的博客-CSDN博客

(36条消息) 进程间通信(IPC)——FIFO(命名管道)_牵猫散步的鱼儿的博客-CSDN博客_进程fifo

 

3.进程间通信( IPC):消息队列

(36条消息) 进程间通信( IPC):消息队列_♚陌上花开的博客-CSDN博客_ipc 消息队列

 

4.信号量--System V信号量 与 Posix信号量

信号量--System V信号量 与 Posix信号量_51CTO博客_posix信号量

(37条消息) 进程间通信(IPC):信号量_♚陌上花开的博客-CSDN博客_ipcs 信号量

 

 

5.共享内存

(36条消息) 共享内存_shmget_付康为的博客-CSDN博客_shmget

 (37条消息) 进程间通信(IPC):共享内存_♚陌上花开的博客-CSDN博客_ipc共享内存

shmctl

int shmctl(int shmid,int cmd,struct shmid_ds *buf)
shmid:共享存储段的id
cmd:一些命令

    IPC_STAT 得到共享内存的状态
    IPC_SET 改变共享内存的状态
    IPC_RMID 删除共享内存

IPC_RMID 命令实际上不从内核删除一个段,而是仅仅把这个段标记为删除,实际的删除发生在最后一个进程离开这个共享段时。

请注意,共享内存不会随着程序结束而自动消除,要么调用shmctl删除,要么自己用手敲命令去删除,否则永远留在系统中。

使用命令:

ipcs -m //先通过查询所有的共享内存的id
ipcrm shm shmid  //删除指定共享内存区

 

 

五种通讯方式总结

1.管道:速度慢,容量有限,只有父子进程能通讯

2.FIFO:任何进程间都能通讯,但速度慢

3.消息队列:容量受到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题

4.信号量:不能传递复杂消息,只能用来同步

5.共享内存区:能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了同一进程内的一块内存。

标签:IPC,博客,间通信,信号量,进程,共享内存
From: https://www.cnblogs.com/cuijy1/p/16918077.html

相关文章

  • 一行代码如何隐藏Linux进程?
    总有朋友问隐藏Linux进程的方法,我说你想隐藏到什么程度,是大隐于内核,还是小隐于用户。网上通篇论述的无外乎hook掉procfs或者类似的用户态方案,也都难免长篇大论,我说,这些......
  • Android 进程之间复杂的数据类型传输为啥一定需要序列化
    Android进程之间复杂的数据类型传输为啥一定需要序列化Linux特性Android系统都是基于Linux系统实现的,而这里Linux运行的时候,都是有进程隔离机制的。Linux采用了虚拟内......
  • Linux进程间通信的方法和示例
     进程通信的概念    进程数据空间是相互独立的,不能相互访问的。但某些情况下进程之间需要互相通信,来完成系统的某项功能或交换数据。进程通信的场景    1)......
  • linux多进程介绍和示例
     进程的概念什么是进程?进程这个概念是针对系统而不是针对程序员的,对程序员来说,我们面对的概念是程序。当程序员敲入命令执行一个程序的时候,对系统而言,它将启动一个进程。进......
  • Vue2基本组件间通信
    Vue2组件通信的基础方式自己的理解:组件化通信,无非就是数据你传我,我传你,两个组件的相互交流,方法很多,下方有图示(此篇建议小白阅读,大神的话也不会看,哈哈哈哈!仅供参考,有不同......
  • Linux创建进程为什么要用fork做为关键字
    众所周知,Linux创建进程程的时候要调用系统调用fork,fork翻译成中文为“分叉"的意思,真的理解创建进程的过程会发现,fork是很形象的。先看一段Linux创建进程的代码1intma......
  • oracle数据库进程查询
    1、查看进程selectsess.sid,sess.serial#,lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_mode,SESS.machinefromv$locked_objectlo,dba_objectsao,v$......
  • 并发、进程、线程
    并发并发:一个程序同时执行多个独立任务。并发假象:单CPU,上下文切换;多CPU,真正并行功能:提高性能。进程进程:可执行程序运行起来即创建一个进程线程线程:代码的执行通路,每个进程......
  • python flask实战订餐系统微信小程序-59flask部署单进程启动服务
    欢迎关注原创Python微信订餐小程序课程视频Python实战量化交易理财系统​​python​​​​flask​​实战订餐系统微信小程序-60nginx+uwsgi实现多进程访问​​​B站配套......
  • Python 多进程(一)简单场景
    需求:使用多进程,把add的结果放进list原始的多进程之间不能共享数据使用Manager来管理list,多进程可以操作同一个list使用multiprocessing.Manager().list()创建一个listd......