- 主题:终于想明白协程了。
【 在 nsyncxyz 的大作中提到: 】
: 要是知道汇编的话,协程很容易理解
嗯。
协程是自己调度的,这块比较难弄,要搞好久才能稳定下来。
我弄了个多线程协程,哩哩啦啦搞了4个月才算稳定了。过几年审视自己的代码,还犯晕。
--
FROM 221.221.54.*
【 在 z16166 的大作中提到: 】
: 在加锁上,感觉多线程执行协程可能是个噩梦?
: 如果A1,A2,...,An这些协程都可能在t1,t2,...,tn这些线程上执行,那么访问共享资源时直接无脑全部加锁就行,
: 怕的就是一组协程G1在一个线程t1上执行,而另外一组协程G2在另外一个不同的线程t2上执行,G1和G2这两个协程组之间访问共享资源时需要加锁,协程组内的资源不需要加锁。
: ...................
协程安全,线程锁不得跨越yield。
--
FROM 221.221.53.*
【 在 shortytall 的大作中提到: 】
: 建议转Go。打我呀打我呀~
能用go的就不在这里废话了。
--
FROM 221.221.53.*
【 在 lufthansa 的大作中提到: 】
: 现场怎么恢复,提供了接口保存和恢复被自己程序调度中断处的寄存器信息么?
:
协程内部提供了这个功能。
系统库:
getcontext();//保存寄存器
setcontext();//恢复寄存器
swapcontext();//交换现场
--
修改:ylh1969 FROM 221.221.53.*
FROM 221.221.53.*
时钟中断。
【 在 pabkyh 的大作中提到: 】
: 用户程序在执行的时候,cpu不是all-in吗,背后还有一只手?
:
: - 来自 水木说
--
FROM 221.221.53.*