以前總覺得 concurrency 很難很酷,如 pthread 那樣精深,難上手。最近三年的工作經驗認識 asynchronous I/O,發現這是一種 concurrency,才覺得沒有這麼夢幻,覺得實用。我的工作經驗上,沒遇過 concurrency computing。
以 Computer Memory Hierarchy 解釋,CPU 以外的 I/O 都是很慢的,讓 CPU 等待是罪過,此決定掌握在 programmer 手上。
使用 aio 方式我用過幾種:
1) Object-C delegate
初體驗,也是啟發的框架。
2) go goroutine + channel
新語言的設計。
3) JavaScript ajax + callback
常見的方式。
自從開始有這些體驗,盡量落實每個動作都是 async,朝 C10M 邁進。