![](https://img-blog.csdnimg.cn/20191017092304951.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
linux 进程间通信
文章平均质量分 86
li_wen01
liwen01
展开
-
浅谈消息队列及常见的消息中间件
浅谈消息队列及常见的消息中间件前言消息队列已经逐渐成为企业应用系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能。当前使用较多的消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ等,而部分数据库如Redis、MySQL以及phxsql也可实现消息队列的功能。...............转载 2019-12-18 10:48:49 · 376 阅读 · 0 评论 -
程序,进程,线程的概念及进程间通信——学习目录
(一)程序、进程和线程的概念 在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。进程则是运行着的程序,是操作系统执行的基本单位。线程则是为了节省资通可以在同一个进程中共享资源的一个执行单位。1.1程序和进程的差别 进程的出现最初是在UNIX下,用于表示多用户、多任务的操作系统环境下,应用程序在内存环境中基本执行单元的概念。进程是UNX操作系统...原创 2017-01-09 19:25:03 · 680 阅读 · 0 评论 -
一种基于linux系统的精准流量统计方法
前言: 在linux系统关于流量统计,已经有开源的工具,比如nethogs,nload和iptraf。它们适合我们在PC上直接监控某台设备的流量情况,但并不适合我们应用到自己的程序中去。如果要在自己代码中实现流量的统计,可以有下面几种方法:统计应用层流量;使用tcpdump抓取每一包数据进行统计;使用Iptables命令来实现。下面就这几种方法进行对比:(1)应用层计算流量 ............原创 2019-06-25 10:53:50 · 10807 阅读 · 10 评论 -
一种基于Unix Domain和TCP连接的跨设备多进程间通信的方法
前言: 在linux系统进程间通信的方式有消息,消息队列,管道,内存映射,套接字等多种方式。在Android系统上进行进程间通信主要是使用Binder,其它的还有共享内存,管道,RPC和Unix Domain等方式。但是,在linux中常用的消息队列,在Android等系统上并不能直接的使用,Android上常用的Binder,在其他的系统上同样不能使用,如果要在windows,linux.........原创 2019-08-15 14:14:24 · 2394 阅读 · 4 评论 -
Linux进程间通信/多线程通信——信号量
前言: 信号量在进程中和在线程中有不同的接口实现,使用信号量来做多进程间同步与使用信号量来做多线程间的同步是不一样的,这里将分别介绍信号量在多进程和多线程中的应用。信号量在多进程中的应用: 这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——...转载 2017-07-29 09:55:44 · 1880 阅读 · 0 评论 -
linux进程间通信——信号集函数
我们已经知道,我们可以通过信号来终止进程,也可以通过信号来在进程间进行通信,程序也可以通过指定信号的关联处理函数来改变信号的默认处理方式,也可以屏蔽某些信号,使其不能传递给进程。那么我们应该如何设定我们需要处理的信号,我们不需要处理哪些信号等问题呢?信号集函数就是帮助我们解决这些问题的。下面是信号函数集:1、int sigemptyset(sigset_t *set);转载 2017-01-11 15:26:59 · 451 阅读 · 0 评论 -
Linux进程间通信—— 内存映射
Linux环境进程间通信(五): 共享内存(上)共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。采用共享内存通信的一个显而易见的好处是效率高转载 2017-07-29 10:26:08 · 2979 阅读 · 0 评论 -
Linux进程间通信——共享内存
共享内存(Shared Memory),指两个或多个进程共享一个给定的存储区。1、特点共享内存是最快的一种 IPC,因为进程是直接对内存进行存取。因为多个进程可以同时操作,所以需要进行同步。信号量+共享内存通常结合在一起使用,信号量用来同步对共享内存的访问。2、原型123456789#include转载 2017-07-29 10:00:27 · 705 阅读 · 0 评论 -
Linux进程间通信——消息队列
一、什么是消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。 Linux用宏MSGMAX和MSGMNB来限制一条消息的最大长度和一个队列的最大长度。二、在Li...转载 2018-04-24 11:07:45 · 4992 阅读 · 2 评论 -
Linux进程间通信——命名管道应用实例
命名管道克服了管道没有名字的限制,同时除了具有管道的功能外(也是半双工),它还允许无亲缘关系进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。下面程序fifo_write.c周期的往管道中写入数据:/*=============================================================...原创 2017-01-11 00:44:14 · 2706 阅读 · 0 评论 -
Linux进程间通信——信号应用实例
一、什么是信号用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产转载 2017-01-11 16:39:41 · 912 阅读 · 0 评论 -
Linux进程间通信——pipe应用实例
管道(pipe):管道可用于具有亲缘关系的进程间的通信,是一种半双工的方式,数据只能单向流动,允许一个进程和另一个与它有共同祖先的进程之间进行通信。下面是代码示例原创 2017-01-09 19:25:37 · 4362 阅读 · 0 评论