MpscQueue(Multiple Producers Single Consumer Queue)是一类如前所述单缓存顾客的mammalian堆栈。它全力支持数个商品和服务向堆栈中加进原素,但根本无法有两个顾客从堆栈中抽出原素。
MpscQueue的同时实现选用了开放式系统演算法,因而在高mammalian情况下操控性整体表现较好。它的同时实现选用了一类循环式头文件的计算机程序,商品和服务向堆栈中加进原素时,会急速往头文件中载入统计数据,直至头文件满了或是被其它商品和服务挤占。顾客从堆栈中抽出原素时,会急速从头文件中抹除,直至头文件为空或是被其它顾客挤占。
MpscQueue在Java中的同时实现是ConcurrentLinkedQueue类。它全力支持多缓存mammalian出访,因此确保了缓存安全可靠,能在多缓存自然环境下选用。
基本概念
MpscQueue的同时实现如前所述一类叫作Ring Buffer的循环式头文件。Ring Buffer是一类循环式堆栈,能透过操作符来同时实现读和写操作方式,因而非常适合在多缓存自然环境下用作商品和服务和顾客间的通信。
MpscQueue的同时实现近似于商品和服务顾客数学模型,但有数个商品和服务缓存和两个顾客缓存。因而,MpscQueue须要确保商品和服务缓存间的mammalian载入和顾客线程间的mammalian加载是缓存安全可靠的。
具体内容同时实现上,MpscQueue中选用了许多Amou和氢原子操作方式来确保缓存安全可靠。比如说,Ring Buffer中须要选用CAS氢原子操作方式来同时实现操作符的终端,和选用Spin Lock来确保缓存间的并行。除此之外,还须要选用等候堆栈和surrounding等并行辅助工具来确保缓存间的协同。
总而言之,MpscQueue的同时实现是如前所述Ring Buffer的循环式头文件,并选用了许多Amou和氢原子操作方式来确保缓存安全可靠和高效率的mammalian出访。
应用领域情景
MpscQueue在多缓存程式设计各式各样的应用领域情景,主要就是用作在相同缓存间展开触发器输入输出,同时实现缓存间的解耦和协同。
下列是许多常用的应用领域情景:
网络程式设计中的触发器IO通信:在网络程式设计中,触发器IO通信是一类常用的技术。MpscQueue能用作同时实现触发器IO通信中商品和服务和顾客缓存间的输入输出。任务调度和执行:在任务调度和执行中,MpscQueue能用作任务堆栈,同时实现任务的触发器调度和执行。并行计算:在并行计算中,MpscQueue能用作同时实现数个任务间的协同和通信,从而同时实现高效率的并行计算。GUI程式设计中的事件处理:在GUI程式设计中,MpscQueue能用作同时实现GUI缓存和后台缓存间的输入输出,从而同时实现GUI的触发器事件处理。
综上所述,MpscQueue能应用领域于各种须要缓存间输入输出和协同的情景,提高程序的操控性和mammalian性。