1. 概述2. 进程、线程与信息共享Unix进程间的信息共享有多种方式:注意下图中内核的位置 左边的两个进程共享存留于文件系统中某个文件上的某些信息。为访问这些信息,每个进程都得穿越内核。中间的两个进程共享存留于内核中的某些信息。管道、System V消息队列和System V信号量都是这种共享类型...
分类:
其他好文 时间:
2014-09-01 01:37:02
阅读次数:
316
windows消息机制(MFC)消息分类与消息队列Windows中,消息使用统一的结构体(MSG)来存放信息,其中message表明消息的具体的类型,而wParam,lParam是其最灵活的两个变量,为不同的消息类型时,存放数据的含义也不一样。time表示产生消息的时间,pt表示产生消息时鼠标的位置...
本文回答了“为什么使用Handler能跨线程更新UI?”,同时从源码角度剖析了暗藏在Handler背后的玄机:Looper(封装了消息循环)和MessageQueue(消息队列),它们是所有App(Activity)得以运作的核心。Handler本质上具有两个角色——消息队列的窗口(Handler.sendMessage)、处理消息的回调(Handler.handleMessage)。最后指出,后台线程通过Handler更新UI本质上是“生产者消费者问题”。...
分类:
移动开发 时间:
2014-08-28 18:07:55
阅读次数:
313
在System V中,我们经常用用key_t的值来创建或者打开信号量,共享内存和消息队列。这个在IPC的环境中十分的重要,比如说,服务器创建了一个消息队列,等待 客户机发送请求。那么如何创建或者打开已有的消息队列呢?一般而言,我们对于服务器使用的路径和项目id(proj_id)是已知的,所以客户机可以获取
相同的key来打开 消息队列并进行操作。下面就是ftok的使用原型:
ftok函数
...
分类:
其他好文 时间:
2014-08-28 16:13:40
阅读次数:
654
Looper.prepare()和Looper.loop()原文地址:http://blog.csdn.net/heng615975867/article/details/9194219Android中的Looper类,是用来封装消息循环和消息队列的一个类,用于在android线程中进行消息处理。h...
分类:
移动开发 时间:
2014-08-28 13:07:09
阅读次数:
354
当skynet启动的时候,会根据配置文件制定的日志文件来创建一个logger context,具体过程就是找到logger.so动态链接文件,而后调用其logger_create函数(参数是配置的日志文件),而后构建这个服务对应的context(重要的是里面注册了该服务的回调函数_logger())和消息队列,最后执行logger_init函数,把logger的消息队列放入global
que...
分类:
Web程序 时间:
2014-08-27 22:01:28
阅读次数:
332
PeekMessage与GetMessage的对比相同点:PeekMessage函数与GetMessage函数都用于查看应用程序消息队列,有消息时将队列中的消息派发出去。不同点:无论应用程序消息队列是否有消息,PeekMessage函数都立即返回,程序得以继续执行后面的语句(无消息则执行其它指令,有...
分类:
其他好文 时间:
2014-08-26 09:45:25
阅读次数:
146
nova-compute 的代码结构图
如上图所示, 类图中最重要的三个Category
Manager: 核心的业务类,提供实际的业务操作。例如启动虚拟机等等。
Service: 每个service通常包括一个对应的Manager.
service 也负责在消息队列上对指定的topic进行监听,当监听到新的RPC消息的时候, 调用对应的Manager的方法。
Launch...
分类:
其他好文 时间:
2014-08-26 01:49:45
阅读次数:
410
学习云风的skynet源码,简单记录下。
void
skynet_globalmq_push(struct message_queue * queue) {
struct global_queue *q= Q;
uint32_t tail = GP(__sync_fetch_and_add(&q->tail,1));
// only one thread can set the sl...
分类:
Web程序 时间:
2014-08-25 21:11:04
阅读次数:
499