作者: yvb 2013-08-16 20:34:00
忽然想到, 3 為何很吃資源? 是因為套用 2 在 main thread 嗎?然後, 2 是在 thread 用 non-blocking 嗎?libev 和 libevent 是兩套不同的 library...使用 select/poll/epoll 基本原理都是 asynchronous 的方式,但在很多 FDs 和 Threads 的情況下, epoll 較佳...另外, 即使用 busy waiting 的方式, 還是可以適當加入一些條件做 usleep() 來避免狂吃資源...比方non-blocking read沒東西就慢慢加大usleep直到某上限之類.read 的到東西就不需做 usleep() ...另外, 不知您 "用「共用變數」的方式" 是怎樣的方式??