將用C\C++從作業系統的角度開始探索同步非同步的基本概念,
包含 spinlock & mutex & semaphore & atomic 的概念與原理。
之後使用C\C++實踐基於上述原理的併發式資料結構,
包含message queue, threadPool, mapReduce。
到此為止, 將完成同步非同步議題在底層的運作, 接著進入應用面。
利用Node實作簡易的後端, 在這同時會進行JS同步非同步教學。
包含 callback , promise , async/await 等。
最後試著實踐一個高併發後端伺服器的部分模塊。
身為一個 Node 後端工程師, 對我而言 async/await 等非同步語法的使用已經非常順手, 其背後所代表的概念也早就不能令我困惑。 但事實上當我面對一...
前言 或許有些人會有所困惑, 同步非同步的實踐難在哪裡, 為甚麼要一直巴拉巴拉, 但事實上, 非同步就是創建出多條 thread 無序的佔用資源進行運算, 而當...
前言 昨天簡單猜測了非同步框架所應具備的基本功能 ( 某種資料模式, thread schedule ), 可以發現 Multi-threading data...
前言 昨天聊到原子操作時提到了2個名詞, 有些人可能不熟, 會在今天簡單說明。明天會有相應的實作。 lock-free 的意義 是一種分類, 在描述某類演算法在...
前言 今天將會實作資料結構 stack , 之所以選擇 stack 是因為其製作簡單, 可以讓讀者輕鬆的理解 CAS 在其中扮演的腳色。 node: ( 協助...
前言 這系列教學文的目的是要探索具備非同步功能的框架在底層發生了什麼事, 甚至寫一個簡單的框架出來, 目前我們終於進展到閱讀我們的第一個目標 .Net 。 之所...
前言 我們今天要試著解決昨天閱讀 WhenAll 留下來的兩個問題 為何要 "atomic" 的把 task 的總數減一, 看起來只有一條...
前言 昨天聊過 Task.WhenAll , 得知其底層就是等待多個 Task 完成的機制, 那 Task 到底是甚麼呢 ? Task類別代表不會傳回值,而且...
前言 我們昨天聊到要透過解析 threadPool 檔案中的 FinishContinuations method 來了解 .Net 框架中 threadPoo...
前言 今天, 是系列文的小小里程碑, 我們終於在今天找出了 task 的其中一種非同步演算法。他被用在讓 Task 接著執行下一個任務的 method 中。 讓...