主权项 |
一种先入先出队列调度方法,其特征在于,该方法包括:在报文入队时:以原子读操作获取队列尾计数T赋值给缓存变量Tcur,当判定当前队列未满时,在原子比较交换函数中判断当前的队列尾计数T是否等于所述缓存变量Tcur,若相等,则在所述原子比较交换函数中将当前队列尾计数T指向下一待入队位置,若不相等,则所述原子比较交换函数直接返回当前的队列尾计数T的值;判断函数返回值与所述缓存变量Tcur值是否相等,若相等则以所述缓存变量Tcur对队列总长度S取余所得值作为入队位置执行报文入队操作;若不相等则返回所述以原子读操作获取队列尾计数T赋值给缓存变量Tcur的步骤,再次执行上述入队步骤;在报文出队时:以原子读操作获取队列头计数H赋值给缓存变量Hcur,当判定当前队列不为空时,在原子比较交换函数中判断当前队列头计数H是否等于所述缓存变量Hcur,若相等,则在所述原子比较交换函数中将当前队列头计数H指向下一待出队位置,若不相等,则所述原子比较交换函数直接返回当前队列头计数H的值;判断函数返回值与所述缓存变量Hcur,若相等则以所述缓存变量Hcur对队列总长度S取余所得值作为出队位置执行报文出队操作;若不相等则返回到所述以原子读操作获取队列头计数H赋值给缓存变量Hcur的步骤,再次执行上述出队步骤;其中,所述队列尾计数T和队列头计数H为原子变量。 |