iT邦幫忙

2021 iThome 鐵人賽

DAY 1
0
自我挑戰組

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

[Day 1] 前言-為甚麼要探索?

  • 分享至 

  • xImage
  •  

身為一個 Node 後端工程師, 對我而言 async/await 等非同步語法的使用已經非常順手, 其背後所代表的概念也早就不能令我困惑。

但事實上當我面對一個高併發系統, 讀著各種高併發框架, 資料庫, 第三方服務的文件時總會感覺自己是在面對一個不可思議的造物, 我會調用那些 API , 我知道他們背後的部分原理, 但我其實對他們一無所知 , 我很想知道那些框架, 那些套件背後的故事, 所以我打算以 同步非同步 這個高併發系統必備的功能作為起點, 好好的 "探索" 那些框架或套件的底層原理。

回到主題"探索", 這30天的內容會是一段記錄。記錄我這段時間在各個語言, 框架, 東看看西看看,了解他們怎麼實現同步非同步方法的過程。

這段"探索"我相信沒辦法讓人變得比較會打程式, 但對我來說"探索"本來就不是為了得到甚麼, 只是我想看看, 所以我去看看罷了。

內容會交錯放入 基本教學, 源碼閱讀, 簡易實作 三種部份。

基本教學 ⇒ 為了幫助讀者閱讀源碼, 有些概念不懂會看不懂。

源碼閱讀 ⇒ 翻來翻去, 猜測同步非同步是如何被實踐。

簡易實作 ⇒ 利用猜出來的原理, 試著實踐一個小程式

以下條列預計會提到的內容 :

  1. 基本 lock, atomic 概念整理
  2. 實踐簡易併發資料結構 1 (atomic link list)
  3. .Net Task 實踐原理
  4. .Net Schedule 實踐原理
  5. Linux Schedule 概念整理
  6. 實踐簡易併發資料結構 2 (hazard pointer)
  7. pm2 源碼探索
  8. node Libuv 探索
  9. 實踐簡易併發資料結構 3 (http server)

下一篇
[Day 2] 一個非同步案例 httpServer
系列文
從C到JS的同步非同步探索30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言