接115楼。
你可能会问,如果协程运行期间一直不调度(实际上就我这个交易管理器来说,不就是个消息转发吗?没啥工作量),别的任务怎么办呀?
别的任务有别的线程。有几个核就有几个线程(也可能多几个)。
所有线程都占满了呢?那就是达到了系统处理能力的极限了呗(应该可以看到CPU100%,实际见到过85%)。等不到服务的协程就在epoll里等着呗。
一般的交易虽说也是要求响应快,也没那么紧迫,耽误就耽误点。主要是别丢失交易和保证交易的完整性。
就如12306,迟钝就迟钝点,抢不到票就抢不到,有啥了不起。
如果发现处理能力吃紧,以后增加系统配置就得了。
【 在 hgoldfish 的大作中提到: 】
: 没这么简单哦。。你可以参考一下 libgo 和 cppcoro 啊。看看它们是怎么实现协程版本的 mutex, timer 等等的。
:
--
修改:ylh0315 FROM 221.218.61.*
FROM 221.218.61.*