佇列應用及C實現

2021-09-24 15:17:11 字數 1439 閱讀 3573

佇列(fifo)一種資料結構,特點先入先出。應用比如訊息處理等,訊息無法第一時間響應,先將訊息入隊,順序執行。

佇列實現基本步驟:建立、刪除、入隊、出隊。複雜邏輯也是基於基本形式擴充套件。

簡單陣列實現:

#include#include#include#define true  1

#define false 0

/************struct definition**************/

typedef struct msg_tagmsg_t;

typedef struct queue_tagqueue_t;

/***********function declaraction***************/

queue_t *creat_queue(void);

void delete_queue(queue_t *queue);

int en_queue(int msg,queue_t *queue);

int re_queue(queue_t *queue);

void udelay(void);

/**********function definition***********/

queue_t *creat_queue(void)

memset(queue_handle,0,sizeof(queue_t));

return queue_handle;

}void delete_queue(queue_t *queue)

int is_full(queue_t *queue)

int is_empty(queue_t *queue)

int en_queue(int msg,queue_t *queue)

queue->msg[queue->rear] = msg;

queue->rear = (queue->rear+1)%5;

queue->queue_size++;

return true;

}int re_queue(queue_t *queue)

msg_print = queue->msg[queue->front];

queue->front = (queue->front+1)%5;

queue->queue_size--;

printf("data :%d\n",msg_print);

return true;

}int main(int argc,char **ar**)

udelay();

if(false == re_queue(demo_queue))

if(false == re_queue(demo_queue))

return 0;

} void udelay(void)

}

PHP訊息佇列實現及應用

目前對訊息佇列並不了解其原理,本篇文章主要是通過慕課網學習歸納的一些筆記,為後續學習打下基礎。眾所周知在對 設計的時候,會遇到給使用者 簡訊 訂單系統有大量的日誌 秒殺設計 等,伺服器沒法處理這種瞬間迸發的壓力,這種情況要保證系統正常有效的使用,就需要 訊息佇列 的幫助。本篇主要通過訊息佇列的思路進...

PHP訊息佇列實現及應用

目前對訊息佇列並不了解其原理,本篇文章主要是通過慕課網學習歸納的一些筆記,為後續學習打下基礎。眾所周知在對 設計的時候,會遇到給使用者 簡訊 訂單系統有大量的日誌 秒殺設計 等,伺服器沒法處理這種瞬間迸發的壓力,這種情況要保證系統正常有效的使用,就需要 訊息佇列 的幫助。本篇主要通過訊息佇列的思路進...

PHP訊息佇列實現及應用

參考 目前對訊息佇列並不了解其原理,本篇文章主要是通過慕課網學習歸納的一些筆記,為後續學習打下基礎。眾所周知在對 設計的時候,會遇到給使用者 簡訊 訂單系統有大量的日誌 秒殺設計 等,伺服器沒法處理這種瞬間迸發的壓力,這種情況要保證系統正常有效的使用,就需要 訊息佇列 的幫助。本篇主要通過訊息佇列的...