消息队列概述 消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法(仅局限于本机); 每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值. 消息队列也有管道一样的不足: (1)每个消息的最长字节数的上限(MSGMAX); (2)系统中消息队列的总条数也有一个上限(MSGMNI); (3)每个消息队列所能够保存的总字节数是有上限的(MSGMNB) . 查看系...
分类:
系统相关 时间:
2015-02-18 18:48:58
阅读次数:
275
管道概念 管道是Unix中最古老的进程间通信的形式,我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”, 管道的本质是固定大小的内核缓冲区; 如:ps aux | grep httpd | awk '{print $2}' 管道限制 1)管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 2)匿名管道只能用于具有共同祖先的进程(如父进程与fork...
分类:
系统相关 时间:
2015-02-18 17:41:21
阅读次数:
365
进程的同步与互斥 进程同步: 多个进程需要相互配合共同完成一项任务。 进程互斥: 由于各进程要求共享资源,而且有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥;系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源, 而在进程中涉及到互斥资源的程序段叫临界区. Linux IPC发展 Linux下的进程通信手段基本上是从UNIX平台上的进程...
分类:
系统相关 时间:
2015-02-18 17:40:16
阅读次数:
239
Android实现IPC可使用Android本身提供的AIDL机制。网上也有很多相关文章,但写的过于繁琐和麻烦,重点也不突出。本文抽丝剥茧从工程角度给出一个最简单的Android AIDL例程关键代码,以最简单的形式说明如何在代码中使用Android AIDL。
AIDL首先在逻辑上可分为“服务端”和“客户端”。在本示例中,则以两个完全不同、互相独立的Eclipse 项目代表。
(1)serv...
分类:
移动开发 时间:
2015-02-18 16:28:23
阅读次数:
275
本文目的这几天开发了一个PHP CLI程序,用于后台定时调度执行一些任务。此脚本采用了PHP的多进程(pcntl_fork),共享内存和信号量进行IPC和同步。目的是将串行的任 务并行执行,缩短执行时间。可是在工作子进程中,访问myql时一直报错,通过mysql_error返回的信息却是冷冷的一句话...
分类:
数据库 时间:
2015-02-16 18:08:27
阅读次数:
161
写在前面的当一个Android App存在某个不需要UI的后台运行需求时,或者是因为内存占用需要采用多进程方案时,我们免不了与多进程打交道。必不可少的,需要考虑Binder在其中如何实现。最常见的Binder实现当然是AIDL,然而Binder的实现绝不仅仅只有AIDL一种方式,如果止步于写.aidl,那么对于Binder,对于Android整体的跨进程传输过程的理解都只能流于形式。...
分类:
其他好文 时间:
2015-02-15 16:36:43
阅读次数:
167
如果都了解过Parcel类的实现,那么其基本只序列化基本类型的特性还不能满足我们的需求(事实上android中Binder的IPC通信中,Parcel对象也能传递Parcel对象,现实编程用得极少)。具体的Parcel类这里不做介绍。点击查看Parcel类详解
Serializable和Parcelable在现实中的应用场景,有个网友写得非常nice,强烈推荐大家有空看下。点击查看Serial...
分类:
其他好文 时间:
2015-02-13 21:16:22
阅读次数:
437
android Service Activity三种交互方式(付源码)Android应用服务器OSBeanthreadandroid Service Binder交互通信实例最下边有源代码:android SDK提供了Service,用于类似*nix守护进程或者windows的服务。Service有...
分类:
移动开发 时间:
2015-02-13 16:01:02
阅读次数:
198
Parcel其翻译为“包袱”、“包裹”。在Android系统中Binder进程间通信(IPC)中经常使用到Parcel类对象来实现客户端和服务端的数据交互,而AIDL技术也是通过Parcel来实现交互。
查阅Android源码Parcel类,其中常用方法有
obtain() 获得一个新的parcel对象,相当于java中new一个对象
dataSize() 得到当前parcel对象的...
分类:
其他好文 时间:
2015-02-13 11:44:50
阅读次数:
257
我们使用Handler都是在一个进程中使用的,如何跨进程使用Handler? 其实这个问题不难解决,自己动手对binder进行一些封装就可以简单实现。但是当你看系统源码,就会发现,其实这些android都已经为我们做好了。 使...
分类:
移动开发 时间:
2015-02-13 08:08:43
阅读次数:
204