1.一种适用于多生产者多消费者模式的数据管理方法,其特征在于,包括:
当多个生产者中的任一生产者产生新数据元素,则利用std::atomic类型,判断预设队列当前是否符合入列条件,如果是,则将该新数据元素缓存至所述预设队列,如果否,则禁止将该新数据元素缓存至所述预设队列;
当多个消费者中的任一消费者需要对所述预设队列中缓存的数据元素进行处理,则利用std::atomic类型,判断所述预设队列当前是否符合出列条件,如果是,则从当前所述预设队列中提取出相应的数据元素,并发送至相应的消费者,以进行相应的数据处理。
2.根据权利要求1所述的适用于多生产者多消费者模式的数据管理方法,其特征在于,所述判断预设队列当前是否符合入列条件的过程,包括:
判断所述预设队列当前是否已经存满,如果否,则判定当前所述预设队列符合入列条件,如果是,则判定当前所述预设队列不符合入列条件。
3.根据权利要求1所述的适用于多生产者多消费者模式的数据管理方法,其特征在于,所述判断所述预设队列当前是否符合出列条件的过程,包括:
判断当前所述预设队列中是否存在未处理的数据元素,如果是,则判定当前所述预设队列符合出列条件,如果否,则判定当前所述预设队列不符合出列条件。
4.根据权利要求1所述的适用于多生产者多消费者模式的数据管理方法,其特征在于,还包括:
对所述预设队列进行实时监视;
若监视到当前所述预设队列中的剩余缓存空间容量小于预设容量阈值,则发出相应的容量预警信息。
5.根据权利要求1至4任一项所述的适用于多生产者多消费者模式的数据管理方法,其特征在于,所述预设队列为环形缓冲区。
6.一种适用于多生产者多消费者模式的数据管理系统,其特征在于,包括:
入列管理模块,用于当多个生产者中的任一生产者产生新数据元素,则利用std::atomic类型,判断预设队列当前是否符合入列条件,如果是,则将该新数据元素缓存至所述预设队列,如果否,则禁止将该新数据元素缓存至所述预设队列;
出列管理模块,用于当多个消费者中的任一消费者需要对所述预设队列中缓存的数据元素进行处理,则利用std::atomic类型,判断所述预设队列当前是否符合出列条件,如果是,则从当前所述预设队列中提取出相应的数据元素,并发送至相应的消费者,以进行相应的数据处理。
7.根据权利要求6所述的适用于多生产者多消费者模式的数据管理系统,其特征在于,所述入列管理模块,包括:
第一判断单元,用于当多个生产者中的任一生产者产生新数据元素,则利用std::atomic类型,判断所述预设队列当前是否已经存满,如果否,则判定当前所述预设队列符合入列条件,如果是,则判定当前所述预设队列不符合入列条件;
入列控制单元,用于当所述第一判断单元判定当前所述预设队列符合入列条件,则将该新数据元素缓存至所述预设队列,当所述第一判断单元判定当前所述预设队列不符合入列条件,则禁止将该新数据元素缓存至所述预设队列。
8.根据权利要求6所述的适用于多生产者多消费者模式的数据管理系统,其特征在于,所述出列管理模块,包括:
第二判断单元,用于当多个消费者中的任一消费者需要对所述预设队列中缓存的数据元素进行处理,则利用std::atomic类型,判断当前所述预设队列中是否存在未处理的数据元素,如果是,则判定当前所述预设队列符合出列条件,如果否,则判定当前所述预设队列不符合出列条件;
出列管理单元,用于当所述第二判断单元判定当前所述预设队列符合出列条件,则从当前所述预设队列中提取出相应的数据元素,并发送至相应的消费者,以进行相应的数据处理。
9.根据权利要求6所述的适用于多生产者多消费者模式的数据管理系统,其特征在于,还包括:
队列监视模块,用于对所述预设队列进行实时监视;
容量预警模块,用于当所述队列监视模块监视到当前所述预设队列中的剩余缓存空间容量小于预设容量阈值,则发出相应的容量预警信息。
10.根据权利要求6至9任一项所述的适用于多生产者多消费者模式的数据管理系统,其特征在于,所述预设队列为环形缓冲区。