昨天又在TopLanguage上看到一些关于轻量级线程的讨论,于是对其中很有用的一段话转过来、记录下来以供自己日后慢慢研究。 下面是由red...@gmail.com发表在TopLanguage上的 1. process per connection / thread per connection 这在连接数不多的时候编码方便. 并且, 在连接数不多而要求网络吞吐量高的场合, 这种方式是最容易实现, 效果也好. 2. 单一 selector/preactor 需要编写大量的状态机代码, 比较麻烦. 配合 epoll/kqueue/ devpoll 等机制, 没有 io block 问题的时候, 这种模式可 以轻易处理大量连接, cpu 消耗少. 需要注意的是, 文件访问不一定会造成大的 io block, 看业务目标和设计. 例如, 发送文件内容的时候, 可以使用 sendfile 调用, 或者 (有人提出过, 我还没有研 究过) 将文件 mmap 到内存中, 然后用 zero copy api 去发送这段内存. 外界的数据库访问之类的, 则一定会造成 block. 阅读全文>
发表于 @ 2007年12月30日 21:04:00|评论(loading...)|收藏