第十一屆

software-dev
從零開始土炮MQ
伊恩

系列文章

DAY 1

一、前言

2022.07 補充: 後續補充與整理,將更新於 Blog 1. 撰寫動機 為什麼會寫這個主題,是因為近幾年參與開發的軟體之中,大量使用到佇列(Queue)...

DAY 2

二、基本的 queue (1) - Line Queue & Circle Queue

1. Queue 首先,我們先來聊聊 Queue 的基本概念。 還記得先前提到,Queue 具有暫存緩衝與它先進先出的兩種特性嗎?我們舉個與 Queue 概念相...

DAY 3

二、基本的 queue (2) - Priority Queue

2.4. Priority Queue 有時,在某些情況下,必需打破 FIFO 的原則,需要讓後面進來的特定的資源提早被離開 Queue。 我們再來看個例子。...

DAY 4

二、基本的 queue(3) - Linked List

2.5 Linked List 先前提到的的作法,都是預先配置記憶體空間後,才開始將資源放入。雖然簡單快速,但在決定預先配置空間尺寸,就變成一個需要進行評估的點...

DAY 5

三、Queue 的應用(1) - 生產者與消費者模型 (producer-consumers pattern)

3.1 生產者與消費者模型 (producer-consumers pattern) 依慣例,在說明生產者與消費者模型之前,先用一個現實的情境來舉例。 A 公司...

DAY 6

三、Queue 的應用(2) - 以 Lock 保護共用資源

當同個時間點,生產者一邊在產生資源,並將其填入 Queue ;另一邊,消費者從 Queue 中取出資源,以利後續處理。 一來一往之處,如果沒有同步的機制,極有可...

DAY 7

三、Queue 的應用(3) - Semaphore、Mutex的同步

前面利用 Lock 這種互斥鎖,來達到共用資源的同步。接下來,來討論非排他鎖(nonexclusive locking) 的同步機制 Semaphore。 回到...

DAY 8

三、Queue 的應用(4) - ManualResetEvent 與 Lock 的 BlockQueue 補完

3.4 ManualResetEvent 使用 semaphore、 Mutex 可以達到對 BlockQueue 的要求。單純使用 Lock ,能確保共用資...

DAY 9

三、Queue 的應用(5) - 名詞補完:原子性、有序性、可見性

3.5 原子性、有序性、可見性 不管是互斥鎖、Semaphore、Mutex、WaitHandle 的那一種作法,其主要的目的,都是為了確保多執行緒爭相存取共...

DAY 10

四、Router 路由器(1)

四、Router 路由器 4.1 概念分析 如果今天有一個需求,希望使用將不同類型的資料,統一的放入 queue ,統一管理。那這樣的情況... 我們來解析一下...