我的看法:
如果要提供编程框架给别人用,为了让别人用起来像阻塞式变成一样方便,那这时候可能需要考虑用协程的方式实现你的框架
如果是为了自己用,完全可以自己用一个控制块来对应一个连接或者请求,到底对应什么取决于实际业务逻辑,实现一个状态机,然后直接用传统的方式epoll或者封装过的libev或者asio,来写代码,连接或者请求的状态变化在控制块里面记录。然后根据不同的状态和消息驱动运转状态机,相比攒一个协程的实现方式,这种方式既直观又省力
【 在 hgoldfish 的大作中提到: 】
: 这个是基于处理 socket 连接,源于 unix 系统可以由多个线程抢同一个 listening socket. 这个机制受系统的影响比较大,有一定的可能性几个线程抢了所有的 accepted socket, 而大部分线程饿死。
: 所以如果协程是处理其它事情,或者想要更好的负载均衡效果,最好是搞自定义的队列。
:
--
FROM 113.120.108.*