最近在研究一个高性能的无锁共享内存消息队列,使用的fifo来通知。结合之前《基于管道通知的百万并发长连接server模型》文章,这里总结一下常用的通知机制。常用的通知机制中比较典型的有以下几种:1、signal这种机制下,我们向被通知进程发送一个特殊的signal(比如SIGUSR1),这样正在睡眠...
分类:
其他好文 时间:
2014-09-14 19:13:37
阅读次数:
240
常用的进程间通信方式有这几种A.传统的进程间通信方式无名管道(pipe)、有名管道(fifo)和信号(signal)B.System v IPC对象共享内存(share memory)、消息队列(message queue)和信号灯(semaphore)C.BSD套接字(socket)一、无名管道(...
分类:
其他好文 时间:
2014-09-14 17:52:37
阅读次数:
363
在Windows中,用户程序可以调用系统的API函数,系统也会调用用户程序,这个调用时通过消息来进行的。 Windows程序设计是一种事件驱动方式的程序设计模式,主要基于消息。 【例】当用户在窗口中画图的时候,按下鼠标左键,操作系统就会感知到这一事件,于是将这个事件包装成一个消息,投递到应用...
1、下载RabbitMQ Server安装包
Ubuntu环境下的安装包rabbitmq-server_3.3.5-1_all.deb的下载地址在这里:http://www.rabbitmq.com/install-debian.html
Ubuntu自9.04版本之后默认会安装RabbitMQ,但是版本会较老,所以我们需要安装上面的最新的安装包。
下载后直接双击安装即可,Erlang环境都...
分类:
Web程序 时间:
2014-09-13 20:09:45
阅读次数:
308
Delphi写的DLL,OCX中如果使用了TThread.Synchronze(Proc),可能导致线程死锁,原因是无法唤醒EXE中主线程,Synchronze并不会进入EXE主线程消息队列.下面的程序自动解决此问题,只需要加入DLL,OCX工程文件中,在DLL,OCX中便可以使用TThread.S...
分类:
编程语言 时间:
2014-09-10 22:18:31
阅读次数:
306
RabbitMQ:MQ:message queue.MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用...
分类:
其他好文 时间:
2014-09-10 00:16:19
阅读次数:
225
应用程序消息有三个来源:硬件消息(鼠标键盘等外设)、PostMessage消息、SendMessage消息,都可以发送消息事件来驱动程序执行。
消息流图如下。
硬件消息响应流程如下。
①消息进入系统消息队列。
②消息分发到应用程序消息队列。
③应用程序循环获取消息。
④消息处理函数执行。
PostMessage直接进入上述步骤②,将消息放入消息队列中,然后立刻返回。
Sen...
分类:
编程语言 时间:
2014-09-09 18:29:19
阅读次数:
310
安卓开发所需软件:JDKEclipseAndroid-SdkADT其中jdk的下载和安装,详细见http://www.cnblogs.com/zhuxiaohui/p/3620685.htmleclipse的下载地址为http://www.eclipse.org/downloads/,即选择当前.....
分类:
编程语言 时间:
2014-09-09 18:13:09
阅读次数:
220
ActiveMQ是一个开源兼容Java Message Service (JMS) 1.1面向消息的中件间. 来自Apache Software Foundation. ActiveMQ提供松耦合的应用程序架构. 先来看两个应用通过RPC通讯的紧耦合: 通过面向消息的中件间, 架构演变为: 我们看到...
分类:
其他好文 时间:
2014-09-09 15:26:38
阅读次数:
296