1.一种共享队列中的消息处理方法,其特征在于,所述方法包括以下步骤:
接收核中的中断处理程序接收共享队列发送的中断通知消息;
所述中断处理程序读取预订消息个数;
所述中断处理程序判断读取到的预订消息个数;
如果判断出预订消息个数为0,则认为消息已被其他接收核抢占,不唤醒业务线程,所述中断处理程序直接退出;
如果判断出预订消息个数为非0,则认为消息预订成功,唤醒业务线程,所述业务线程从共享队列中读取消息;
在所述接收核中的中断处理程序接收共享队列发送的中断通知消息的步骤前,还包括以下步骤:
在共享队列中预先设置预订消息个数的计数器;
所述中断处理程序读取预订消息个数的步骤,具体为:
所述中断处理程序从计数器中读取预订消息个数。
2.如权利要求1所述的方法,其特征在于,所述预订消息个数的计算步骤,具体为:
业务线程读取共享队列中的预订消息个数msg_rsv_num,共享队列判断总消息个数total_num-触发中断的消息个数阈值msg_threshold-预订消息个数msg_rsv_num的值是否大于等于0,如果大于等于0,则计算msg_rsv_num的值,msg_rsv_num=msg_rsv_num+msg_threshold,共享队列向业务线程返回计算得到的msg_rsv_num的值;业务线程读取共享队列中的消息,共享队列判断msg_rsv_num是否大于0,如果大于0,则更新msg_rsv_num的值,msg_rsv_num=msg_rsv_num-1;
如果总消息个数total_num-触发中断的消息个数阈值msg_threshold-预订消息个数msg_rsv_num的值小于0,则计数器中的预订消息个数的值不变,共享队列向业务线程返回0值。
3.一种共享队列中的消息处理装置,其特征在于,所述装置包括:
接收模块,用于接收共享队列发送的中断通知消息;
读取模块,用于读取预订消息个数;
判断模块,用于判断读取到的预订消息个数;
唤醒控制模块,用于如果判断出预订消息个数为0,则认为消息已被其他接收核抢占,不唤醒业务线程,中断处理程序直接退出;如果判断出预订消息个数为非0,则认为消息预订成功,唤醒业务线程,所述业务线程从共享队列中读取消息;
所述装置还包括:
设置模块,用于在共享队列中设置预订消息个数的计数器;
读取模块,具体用于从计数器中读取预订消息个数。
4.如权利要求3所述的装置,其特征在于,所述装置还包括:
预订消息个数读取模块,用于读取共享队列中的预订消息个数msg_rsv_num;
数值判断模块,用于判断总消息个数total_num-触发中断的消息个数阈值msg_threshold-预订消息个数msg_rsv_num的值是否大于等于0,
计算模块,用于如果判断出大于等于0,则计算msg_rsv_num的值,msg_rsv_num=msg_rsv_num+msg_threshold;
控制模块,用于控制共享队列向业务线程返回计算得到的msg_rsv_num的值;如果小于0,则计数器中的预订消息个数的值不变,控制共享队列向业务线程返回0值;
更新模块,用于读取共享队列中的消息,共享队列判断msg_rsv_num是否大于0,如果大于0,则更新msg_rsv_num的值,msg_rsv_num=msg_rsv_num-1。
5.一种包括权利要求3至4任一项所述的共享队列中的消息处理装置的接收核。