iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
自我挑戰組

從C到JS的同步非同步探索 系列

將用C\C++從作業系統的角度開始探索同步非同步的基本概念,
包含 spinlock & mutex & semaphore & atomic 的概念與原理。
之後使用C\C++實踐基於上述原理的併發式資料結構,
包含message queue, threadPool, mapReduce。
到此為止, 將完成同步非同步議題在底層的運作, 接著進入應用面。
利用Node實作簡易的後端, 在這同時會進行JS同步非同步教學。
包含 callback , promise , async/await 等。
最後試著實踐一個高併發後端伺服器的部分模塊。

鐵人鍊成 | 共 30 篇文章 | 6 人訂閱 訂閱系列文 RSS系列文
DAY 11

[Day 11] .Net Task 底層(4)

前言 今天要聊到的是 Task 把超過自己承載能力的任務放入 TP 交給別條 thread 執行的過程發生了甚麼 ? 參考函數 : ThreadPool.Un...

2021-09-11 ‧ 由 leon123858 分享
DAY 12

[Day12] .Net Task 底層(5)

前言 今天我們透過查看 task 的 constructer 來理解一個 Task 的主要任務完成過程。 Task's constructer 有很多種多載,...

2021-09-12 ‧ 由 leon123858 分享
DAY 13

[Day 13] .Net Task 底層(6)

前言 今天我們來看看, 當創建一個 task 物件, 設定完要做的行為已及排程方式後, 會調用兩個方法, 他們分別代表甚麼意思。 前情提要 以下方法在執行Tas...

2021-09-13 ‧ 由 leon123858 分享
DAY 14

[Day 14] .Net 非同步概念整理

前言 本來只是想簡單帶過 .Net , 但不知不覺就寫了一大堆, 覺得內容有些混亂, 就在今天花些時間把這些篇的內容作個總整理吧。 Task 的底層 Task...

2021-09-14 ‧ 由 leon123858 分享
DAY 15

[Day 15] epoll

前言 在系列文的第二篇我就提到過, 一個非同步運行框架, 應該要含有兩種架構, 一個是能夠 multi-thread 操作資料的介面, 一個是能夠進行 thre...

2021-09-15 ‧ 由 leon123858 分享
DAY 16

[Day 16] IOCP Input/Output Completion Port

前言 今天要聊到 IOCP 也是一種非同步 IO 的處理方案, 是由 windows 提供的, 而昨天的 epoll 則是 linux 提供的非同步 IO 處理...

2021-09-16 ‧ 由 leon123858 分享
DAY 17

[Day 17] IOCP 實作

前言 今天簡單實踐了最基本的 IOCP http server , 原則上是用我第二天寫的 one2Many httpServer 改的。 中間會擷取跟 IOC...

2021-09-17 ‧ 由 leon123858 分享
DAY 18

[Day 18] Node.js 的非同步小實驗

前言 有在寫 node 的人可能聽人提過, node 的底層是一個支援非同步 IO 的 threadpool , 而有讀過我前三篇的讀者應該可以聯想到 epol...

2021-09-18 ‧ 由 leon123858 分享
DAY 19

[Day 19] Node http request

前言 今天來看看, node 怎麼進行一個 http request 正文 打開 http.js 這個 module https://github.com/no...

2021-09-19 ‧ 由 leon123858 分享
DAY 20

[Day 20] Node 註冊事件 1

前言 昨天我們聊到, node 的 JS 層中的 IO method , 在作了相應的設定後, 就利用 XXX.on 這類 node api 把事件與其回調函數...

2021-09-20 ‧ 由 leon123858 分享