文档章节

Android面试_多线程间通信和多进程之间通信方式

Coding缘
 Coding缘
发布于 02/15 13:57
字数 750
阅读 78
收藏 0
一、进程间的通信方式
1. 管道( pipe ) :管道是一种半双工的通信方式,数据只能单向流动,而且只 能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
2. 有名管道 (namedpipe) : 有名管道也是半双工的通信方式,但是它允许 无亲缘关系进程间的通信。
3. 信号量(semophore ) : 信号量是一个计数器,可以用来控制多个进程对 共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其 他进程也访问该资源。
4. 信号 (sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个 事件已经发生。
5. 消息队列( messagequeue ) : 消息队列是由消息的链表,存放在内核中 并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无 格式字节流以及缓冲区大小受限等缺点。
6. 共享内存(shared memory ) :共享内存就是映射一段能被其他进程所访问 的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是 最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。 它往往与其他通信机制,如信号量配合使用,来实现进程间的同步和通信。

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

二、线程间的通信方式
1.锁机制: 包括互斥锁、条件变量、读写锁
*互斥锁提供了以排他方式防止数据结构被并发修改
*读写锁允许多个线程同时读共享数据,而对写操作是互斥的。
*条件变量可以以原子的方式阻塞进程,直到某个特定条件为真为止。对条 件的测试是在互斥锁的保护下进行的。条件变量始终与互斥锁一起使用。
2.信号量机制(Semaphore): 包括无名线程信号量和命名线程信号量
3. 信号机制(Signal): 类似进程间的信号处理
 
线程间的通信目的主要是用于线程同步,所以线程没有像进程通信中的用于 数据交换的通信机制。

© 著作权归作者所有

Coding缘
粉丝 0
博文 96
码字总数 44722
作品 0
成都
Android工程师
私信 提问
加载中

评论(0)

Android面经总结

Basic: 1. 基本的UI控件和布局文件 2. UI配套的Adapter的使用 3. Activity, Intent,Service,broadCast Receiver他们的生命周期管理熟悉一下 4. 操作手机上的数据库SQLite应用 Advanced_1(这是...

晨曦之光
2012/03/09
231
0
Android面经总结

Basic: 1. 基本的UI控件和布局文件 2. UI配套的Adapter的使用 3. Activity, Intent,Service,broadCast Receiver他们的生命周期管理熟悉一下 4. 操作手机上的数据库SQLite应用 Advanced_1(这是...

晨曦之光
2012/03/07
500
0
金九银十中,看看这31道Android面试题

阅读目录 1.如何对 Android 应用进行性能分析 2.什么情况下会导致内存泄露 3.如何避免 OOM 异常 4.Android 中如何捕获未捕获的异常 5.ANR 是什么?怎样避免和解决 ANR(重要) 6.Android 线程...

codeGoogle
2018/10/30
0
0
《Android开发艺术探索》IPC机制初认识

版权声明:本文出自阿钟的博客,转载请注明出处: https://blog.csdn.net/a_zhon/article/details/84875943 Android IPC 简介 IPC是Inter-Process Communication的缩写,含义为进程间通信或者...

Code-Porter
2018/12/07
0
0
Android(IPC)进程间通讯1:详解Binder由来?

完整原文:http://tryenough.com/android-ipc1 Android开发的进程间通讯,整个Android的应用都依赖于binder做底层通信机制。而Linux中提供的进程间通讯方式并没有binder机制,那么android中为...

TryEnough
2019/02/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 提高不了工作效率和脸有关系

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 1 《夏令时记录(piano.ver)》- ゆめこ 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
67
2
List的一波操作

public static void main(String[] args) { List<Entity> list = new ArrayList<>(); list.add(new Entity(1)); list.add(new Entity(2)); list.add(new Entity(3)); ......

那个猩猩很亮
今天
75
0
Spring基础

主要用于service层; 轻量级java开发框架; 各层 web层:struts,spring-MVC service层:spring dao层:hibernate,mybatis , jdbcTemplate --> spring-data Spring核心:控制反转IOC 切面编...

七宝1
今天
30
0
解决overflow+border-radius+transform圆角问题

网上还有其他版本,但是对我来说都不好使,下面是我在Chrome上的代码。overflow:hidden依然是不能正常使用,换成unset就可以,读者如果有更好的解决方案,请留言,谢谢。 <figure> <img...

hi懒喵
今天
53
0
《C语言》—— 数组

书籍使我变成了一个幸福的人,使我的生活变成轻松而舒适的诗。——高尔基 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 点关注,不迷路!...

龙跃十二
今天
84
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部