进程之间的8种通信方式

此篇主要讲解进程之间的通信方式。

操作方法

  • 01

    无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

  • 02

    高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式。

  • 03

    有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。

  • 04

    消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

  • 05

    信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。

  • 06

    信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

  • 07

    共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。

  • 08

    套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。

(0)

相关推荐

  • Linux进程通信(IPC)方式简介

    linux下进程间通信的几种主要方式:管道(pipe)和有名管道(FIFO)、信号(signal)、消息队列、共享内存(shared memory)、信号量(semaphore)、套接字(socket ...

  • Linux进程和线程的基础与管理

    一.进程的基本概念 程序是为了完成某种任务而设计的软件,比如vi是程序。什么是进程呢? 进程就是运行中的程序。一个运行着程序,可能有多个进程。比如Web服务器是Apache服务器,当管理员启动服务后, ...

  • 杀死Linux中的defunct进程(僵尸进程)的方法指南

    一.什么是defunct进程(僵尸进程)在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状态时 ...

  • 简要剖析Linux系统的进程管理机制

    一 .进程的概念和分类1.进程的概念Linux是一个多用户多任务的操作系统.多用户是指多个用户可以在同一时间使用同一个linux系统: 多任务是指在Linux下可以同时执行多个任务,更详细的说,lin ...

  • Electron进程间通讯【一】主进程与渲染进程通信

    Electron进程间通讯通信有3种情况:主进程与渲染进程之间的通讯.主进程与主进程之间的通讯.渲染进程与渲染进程之间的通讯. 本教程讲解Electron进程间通讯的第1种情况--主进程与渲染进程之间 ...

  • 信号量如何解决进程的同步和互斥问题

    信号量如何解决进程的同步和互斥问题 操作方法 01 首先是进程间的两种关系:同步和互斥.所谓同步就是把异步环境下的一组并发进程,因直接制约而互相发送消息二进行互相合作.互相等待,使得各进程按一定的速度 ...

  • win8系统的任务管理器五种启动方法

    第一种方法打开“任务管理器” - 按Ctrl + Shift + Esc键。可以直接调出win8系统的任务管理器!这是当用户使用系统用鼠标不能正常控制的时候可用的办法。也是比较根本的方法。找到挂起的进 ...

  • windows和linux下查看80端口号占用(被哪个进程占用?如何终止)

    windows和linux下查看80端口号占用(被哪个进程占用?如何终止)

  • Win8系统启动任务管理器的五种办法分享

    第一种方法打开“任务管理器” - 按Ctrl + Shift + Esc键。可以直接调出win8系统的任务管理器!这是当用户使用系统用鼠标不能正常控制的时候可用的办法。也是比较根本的方法。找到挂起的进 ...