- 主题:光有协程不够吧?
全站审核中,暂不能查看本文内容...
全站审核中,暂不能查看本文内容...
全站审核中,暂不能查看本文内容...
全站审核中,暂不能查看本文内容...
全站审核中,暂不能查看本文内容...
c 语言实现 coroutine 最简单了。两三个函数就搞定了。linux 都自带了 swapcontext
【 在 warboss (warboss) 的大作中提到: 】
: qemu代码里面多年前自己就实现了完整的coroutine,目的就是为了虚拟机镜像读写。
--
FROM 112.47.122.*
单线程协程可以搭配多线程。
每个单线程协程都自己玩自己的。
不同线程之间使用专门的工具进行通信。
几种协程的方式,目前各种语言都有实践。目前还处在百花齐放的阶段。
【 在 ylh0315 的大作中提到: 】
: 单线程协程,不好玩。我的那些例子都是多线程协程的,代码里能看出来。
: 28楼程序里,开始就是用pthread_self找线程池里的context。
: 后边也有防止线程冲突的代码。
: ...................
--
FROM 120.33.8.*
你说的是对的啊。用协程的就不要用 thread local 了。
我今天突然发现协程方案的一个好处是在协程里面申请内存可以更频繁地使用栈内存。也算一种加速。
【 在 allegro 的大作中提到: 】
: 感觉多线程协程thread_local基本废了。
: 除非语言实现支持,不同线程驱动同一协程,在切换时,把thread_local的寻址也切换一下。
: Correct me if I am wrong.
: ...................
--
FROM 110.81.0.*
负载均衡算法弄好就行了。很简单的,看谁不忙才把任务给它。
nginx 做这个算法不容易,因为不知道各个进程的忙碌程度。但协程算法很容易,只要在事件循环里面计算一下,其它线程马上可以取到这个值。
【 在 ylh0315 的大作中提到: 】
: 负载均衡很不充分哦!我这个几乎可以把所有的核用到100%。
: 一个指标可以看到负载均衡的效果:
: 最大响应时间与平均响应时间之比,越小越好。
: ...................
--
FROM 183.253.143.*
你没看明白吧。thread_local 切一下就是 BUG 了。
【 在 ylh0315 的大作中提到: 】
: 切换有啥关系,换个核呗。反正IO会等待很长时间,不在乎这一点点。之前的核可以及时为其他任务服务也比在这里死等强。
: 我的设计是尽量不切换。IO都是先干一把,干不完再yield。
--
FROM 183.253.143.*