本申请适用于显示,尤其涉及一种信息存储共享方法、装置、设备及介质。
背景技术:
1、bufferqueue 作为生产者消费者模型的实现,生产者往bufferqueue 中填充数据,而消费者从 bufferqueue 中获取数据,该生产者消费者模型允许生产者和消费者异步操作,提高了系统的效率。在android系统中bufferqueue是用于管理图形缓冲区的核心组件,但是一个生产者进程只能对应一个消费者进程,例如,android 的 bufferqueue 是一个用于在图形生产者和消费者之间传递图像缓冲区的机制,其中,生产者请求一个空闲的缓冲区来绘制图像,bufferqueue 返回一个可用的缓冲区给生产者,生产者在缓冲区中绘制图像,生产者将填充的缓冲区提交给 bufferqueue,bufferqueue通知消费者有新的图像可用,消费者从 bufferqueue 请求一个已填充的缓冲区,以读取缓冲区中的图像并显示。
2、如果一个生产者进程要对应多个消费者进程,则必须创建多个bufferqueue,把数据复制多份,通过多个bufferqueue来分发,这就导致系统内存与cpu资源的占用。
3、因此,如何改进信息共享的流程,以在一个bufferqueue下实现多个消费者读取共享数据,降低资源占用成为亟待解决的问题。
技术实现思路
1、有鉴于此,本申请实施例提供了一种信息存储共享方法、装置、设备及介质,以解决如何改进信息共享的流程,以在一个bufferqueue下实现多个消费者读取共享数据,降低资源占用的问题。
2、第一方面,本申请实施例提供一种信息存储共享方法,所述信息存储共享方法应用于生产者消费者模型中的缓冲区管理者,所述生产者消费者模型还包括生产者和至少两个消费者,包括:
3、在检测到所述生产者申请共享缓存时,从共享内存中确定可用共享缓冲区,将所述可用共享缓冲区返回所述生产者,所述生产者用于在获取到所述可用共享缓冲区后填充生产数据;
4、在检测到所述可用共享缓冲区被填充后,获取所有消费者的数量为引用计数,将所述引用计数存储于计数管理内存;
5、针对任一消费者,在获取所述消费者的数据请求后,将所述可用共享缓冲区返回给所述消费者,所述消费者用于在获取到所述可用共享缓冲区后,读取所述可用共享缓冲区中的所述生产数据;
6、在所述计数管理内存中对所述引用计数减一,遍历所有消费者,直至所述引用计数为零时所述可用共享缓冲区标记为空闲。
7、第二方面,本申请实施例提供一种信息存储共享方法,所述信息存储共享方法应用于生产者消费者模型中的任一消费者,所述生产者消费者模型还包括缓冲区管理者和生产者,包括:
8、向所述缓冲区管理者发送数据请求,所述缓冲区管理者用于实现如上述第一方面所述的信息存储共享方法;
9、获取所述缓冲区管理者返回的所述可用共享缓冲区,读取所述可用共享缓冲区中的所述生产数据。
10、第三方面,本申请实施例一种信息存储共享装置,所述信息存储共享装置应用于生产者消费者模型中的缓冲区管理者,所述生产者消费者模型还包括生产者和至少两个消费者,包括:
11、可用缓冲区反馈模块,用于在检测到所述生产者申请共享缓存时,从共享内存中确定可用共享缓冲区,将所述可用共享缓冲区返回所述生产者,所述生产者用于在获取到所述可用共享缓冲区后填充生产数据;
12、引用计数模块,用于在检测到所述可用共享缓冲区被填充后,获取所有消费者的数量为引用计数,将所述引用计数存储于计数管理内存;
13、数据发送模块,用于针对任一消费者,在获取所述消费者的数据请求后,将所述可用共享缓冲区返回给所述消费者,所述消费者用于在获取到所述可用共享缓冲区后,读取所述可用共享缓冲区中的所述生产数据;
14、共享管理模块,用于在所述计数管理内存中对所述引用计数减一,遍历所有消费者,直至所述引用计数为零时所述可用共享缓冲区标记为空闲。
15、第四方面,本申请实施例一种信息存储共享装置,所述信息存储共享装置应用于生产者消费者模型中的任一消费者,所述生产者消费者模型还包括缓冲区管理者和生产者,包括:
16、数据请求模块,用于向所述缓冲区管理者发送数据请求,所述缓冲区管理者用于实现如上述第一方面所述的信息存储共享方法;
17、数据读取模块,用于获取所述缓冲区管理者返回的所述可用共享缓冲区,读取所述可用共享缓冲区中的所述生产数据。
18、第五方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的信息存储共享方法或者第二方面所述的信息存储共享方法。
19、第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的信息存储共享方法或者第二方面所述的信息存储共享方法。
20、本申请实施例与现有技术相比存在的有益效果是:本申请在检测到生产者申请共享缓存时,从共享内存中确定可用共享缓冲区,将可用共享缓冲区返回生产者,在检测到可用共享缓冲区被生产者填充后,获取所有消费者的数量为引用计数,将引用计数存储于计数管理内存,在获取任一消费者的数据请求后,将可用共享缓冲区返回给消费者读取生产数据,在计数管理内存中对引用计数减一,遍历所有消费者,直至引用计数为零时可用共享缓冲区标记为空闲。本申请实现一个生产者,可以对应多个消费者,一次生产可以对应多个消费者来同步消费,避免占用更多的资源和内存,且无需数据拷贝,分发效率更高效。
1.一种信息存储共享方法,其特征在于,所述信息存储共享方法应用于生产者消费者模型中的缓冲区管理者,所述生产者消费者模型还包括生产者和至少两个消费者,包括:
2.根据权利要求1所述的信息存储共享方法,其特征在于,所述获取所有消费者的数量为引用计数,包括:
3.根据权利要求2所述的信息存储共享方法,其特征在于,所述检测所述消费者是否满足预设条件,包括:
4.根据权利要求1所述的信息存储共享方法,其特征在于,所述在检测到所述可用共享缓冲区被填充后,还包括:
5.一种信息存储共享方法,其特征在于,所述信息存储共享方法应用于生产者消费者模型中的任一消费者,所述生产者消费者模型还包括缓冲区管理者和生产者,包括:
6.根据权利要求5所述的信息存储共享方法,其特征在于,所述信息存储共享方法还包括:
7.一种信息存储共享装置,其特征在于,所述信息存储共享装置应用于生产者消费者模型中的缓冲区管理者,所述生产者消费者模型还包括生产者和至少两个消费者,包括:
8.一种信息存储共享装置,其特征在于,所述信息存储共享装置应用于生产者消费者模型中的任一消费者,所述生产者消费者模型还包括缓冲区管理者和生产者,包括:
9.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述的信息存储共享方法或者如权利要求5至6任一项所述的信息存储共享方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的信息存储共享方法或者如权利要求5至6任一项所述的信息存储共享方法。
