文档章节

进程间通讯的方式

旋转木马-千里马
 旋转木马-千里马
发布于 2015/12/29 17:11
字数 469
阅读 17
收藏 0

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

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

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

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

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

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

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

© 著作权归作者所有

共有 人打赏支持
旋转木马-千里马
粉丝 15
博文 83
码字总数 85714
作品 0
海淀
程序员
私信 提问
【linux下c语言服务器开发系列3】进程间通讯

上个博文说道,信号是在进程间通讯的的一种方式。例如子进程执行结束后,向父进程发送sigchld信号,父进程就通过捕获这个信号,就可以对子进程的资源进行回收,避免其成为僵尸进程。 进程间通...

shewa
2013/10/23
0
0
进程、线程、协程基本概念理解

概述 最近接触一些进程、线程、协程、相关的东西,总是容易搞混淆,或者出错,专门想总结下这块的几个概念的问题! 进程 进程之间不共享任何状态 进程的调度由操作系统完成 每个进程都有自己...

rasine的杂货铺
2016/04/22
287
0
进程/线程概念和Android异步通讯机制

1、操作系统中线程、进程概念 进程是资源分配和调度的独立单位,进程将内存地址空间、程序、数据等资源组织起来,使操作系统容易管理这些资源。 线程是CPU调度和分派的基本单位,线程必须依赖...

JouTzaShin
2013/11/17
0
0
Android Binder机制(一)

binder用于android进程间的通讯。客户端程序和系统服务,客户端进程之间,都是通过binder进行进程间通讯的。 1.客户端程序和系统服务 客户端和系统服务通讯的入口:cotext.getSystemService...

grasp_D
2017/04/03
0
0
20.进程与线程通信方式之间的差异

进程线程通信方式之间的差异 每个进程有自己的地址空间。两个进程中的地址即使值相同,实际指向的位置也不同。进程间通信一般通过操作系统的公共区进行。 同一进程中的线程因属同一地址空间,...

u014590757
04/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么要学习Python?这10个理由足够了!

摘要: 看完这十个理由,我决定买本python从入门到精通! 如果你定期关注现今的科技发展,那么你可能想知道我为什么要写这篇文章告诉人们学习Python?因为几年前我提倡Java而不是Python。 在...

阿里云官方博客
20分钟前
2
0
spring服务方式配置okhttp3

问题 如果把OKhttp以Spring服务方式配置,就解决了从配置中心运行时刷新配置参数的问题。 OkHttpConfig.java package com.zyl.config;import okhttp3.OkHttpClient;import org.springfra...

亚林瓜子
20分钟前
2
0
8张图让你一步步看清 async/await 和 promise 的执行顺序

**摘要:**面试必问 原文:8张图帮你一步步看清 async/await 和 promise 的执行顺序 作者:ziwei3749 Fundebug经授权转载,版权归原作者所有。 为什么写这篇文章? 说实话,关于js的异步执行顺...

Fundebug
21分钟前
1
0
Linux 命令菜单

#!/bin/bash #menu.sh menu(){ source ~/.bashrc echo "=================================" echo "Please enter your choise:" echo "(0) Kill all java" echo "(1) Start all tomcat" echo......

mellen
26分钟前
3
0
原来云数据库也是有思想的...

本文由一刻talks发表 邵宗文,腾讯云数据库专家副总监。十余年数据库从业经验,2009年加入腾讯,曾负责腾讯网,新闻客户端,快报,视频,财经,体育等数据库平台部署、规划及运维支持工作。本...

腾讯云加社区
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部