我读了很多关于消息队列和共享内存之间差异的文章。
但仍不清楚哪一种有利于获得良好的性能。
就像共享内存应该比队列更好,但在同步它的情况下也存在性能问题。
共享内存和消息队列都可以用来在进程之间交换信息。区别在于how他们被使用了。
共享内存正如您所想的那样:它是一个可以由多个进程读取和写入的存储区域。它不提供固有的同步;换句话说,程序员有责任确保一个进程不会破坏另一个进程的数据。但它在吞吐量方面是高效的:读取和写入是相对较快的操作。
A 消息队列是一种单向管道:一个进程写入队列,另一个进程按照写入顺序读取数据,直到发生数据结束条件。创建队列时,会设置消息大小(每条消息的字节数,通常相当小)和队列长度(待处理消息的最大数量)。访问速度比共享内存慢,因为每个读/写操作通常都是单个消息。但队列保证每个操作要么成功处理整个消息,要么失败,而不改变队列。因此,写入者在只写入部分消息后永远不会失败,而读取器要么检索完整的消息,要么什么也不检索。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)