Socket
Terark-CTO-雷鹏
Terark可检索压缩技术作者。致力于让数据更小,访问更快。
展开
-
异步通讯中使用纤程(Fiber/UserSpaceThread)
在异步通讯中,一般使用一个线程来select/poll/epoll,收到信号后,解码消息头,或者整个消息,然后将相应的fd交给其他线程处理。 这看上去的确是个很好的办法,但是,如果使用Tcp,并且遇到一个复杂的派发过程:收到的消息大小未知,而只能使用序列化方法解码消息然后根据其内容进行派发。这种情况的特征是:在大多数情况下,都可以无阻塞地读取并解码整条消息,但也有极小的可能在某条消息上阻塞(消息不...2008-11-15 15:36:00 · 103 阅读 · 0 评论 -
Coroutine真的可以大幅提高效率吗?
这段时间一直想用Coroutine来实现我的rpc中异步调用的分派。看了很多Coroutine的资料,感觉它比起线程切换,就是少了个内核调用,少了自动激活,以及一些内和支持的线程状态(errno,tls等)。在处理器状态的存储/恢复,堆栈的切换等方面的开销都是一样的。在x86这样的体系结构下,处理器的状态(寄存器状态)很少,就那么几个寄存器,存储/恢复起来很快。但是,象MIPS,甚至Itaniu...2009-01-02 14:02:00 · 154 阅读 · 0 评论