最近寫
網頁爬蟲用到並行的方法,因為 golang 接收 channel 是外層包一個
for loop,觀察到這樣會讓一個邏輯 CPU 使用率滿載,這個寫法是
busy waiting,認為這麼做耗電很浪費資源。或許 golang 採用
CSP channel 就是決定得走 busy waiting。
找到
一篇 Haskell 討論 select(2) 或 poll(2) 捕捉方法,有人提出這些討論的視野都是較為底層,在 Haskell 可以用更高階優雅的方式解決。閱畢感到興奮,就是要優雅!