这得提一下, 公司里是有公共开发框架的, 并且全部依赖公司其他库, 协议也是公司定死的协议(二进制协议头), 这个框架就只提供了两种工作方式:
1, 单线程epoll模式, 程序员填回调函数, 框架负责帮你解析出一个请求回调你的函数, 并给你发送应答的接口, 也就是一问一答, 必须立即响应.
2, 多线程模式, 一个线程一个连接, 愿意怎么阻塞就怎么阻塞.
在腾讯实习的时候, 腾讯的公共库框架我也读过, 当前公司的不读我也知道怎么回事. 要表达的意思就是, 这种轮询的实现方式或者状态机的使用一般是没人用的, 大家更擅长简单朴素的方案: 读入, 拆包, 解析, 写出, 这个过程我相信10个程序员9个都会, 这个比例绝对可信(否则谁聘他, 啥也干不了), 但你说nginx/lighttpd这种工作模式10个7,8个都会, 这一点我绝对不能赞同.
我在CU发个贴, 问我有个服务端, 想做Mysql查询, 耗时30秒, 怎么设计? 答案会是什么, 用脚趾头都猜得到, 是吧 :wink:
zylthinking 发表于 2012-10-21 13:28
其实这个所谓单线程服务器的思路, 随便抓十个人, 估计有7,8 个人知道。 具体不同也就是细节方面而已, 也 ... |