whitglint 積分 3

不擅表達,簡單講一下跟 Python 不同之處:

  1. 語言原生支援(由 compiler 把 async method 轉成 state machine 改變執行方式)。比起 generator + decorator 更直覺更不容易寫錯,我常忘記加 decorator 或是有多個 decorator 時不知要加在第幾個,而 async 或 await 沒寫就是編譯錯誤。

  2. 方便利用多個核心。Caller 遇到必須等待的 task 就先離開,之後根據 SynchronizationContext 決定由哪個 thread 繼續執行 await 之後的程式,可以是 UI thread 也可以是 thread pool 裡的 thread。

  3. Event loop 不是必要的。GUI 程式才需要利用 event loop 繼續執行 async method。

感想:用過 async/await 後真的無法再回去寫 callback hell 和 promise 什麼的了... XD

whitglint 積分 0

只有用過 Tornado,覺得這種 coroutine/generator 的 async/await 滿不錯的。

whitglint 積分 0 編輯於

Upgrade Coming Soon

Upgrades are not available at this time. Check back soon!

whitglint 積分 0 編輯於

真的可以揉!

whitglint 積分 0

A terminal emulator for the 21st century.

whitglint 積分 1

「補充: 操作過程中, 遇到必須由 java 處理的部分會 lag 許久, 但耐心等候仍可獲得正常結果。」 #笑尿