性能肯定高不了,问题不在ucontext。
在这两个函数中,yield需要捜索ucontext,线程锁加锁解锁一次,操作epoll一次,调用好几次各种函数,写日志一大堆。
resume需要线程锁加锁解锁一次,写一堆日志。
但是必须这么做,否则,一个任务占死线程,系统吞吐量就完蛋了,总平均等待时间也别看了,这几个线程要为上万任务服务呢。
【 在 hgoldfish 的大作中提到: 】
: 你直接 benchmark 一下就知道了。
: 现代 c/c++ 协程库,要么编程语言支持,要么动用汇编才能达到比较好的性能。
:
--
FROM 221.218.61.*