摘要:
当m在执行某个g的时候,g非常耗时,例如一个for循环,每次循环sleep1分钟,循环1000次。 这个例子看似无聊,却是很难解决的,成功的避开了2个系统切换时机。 如果这个时候,一直执行这个g,别的g就会得不到执行,例如有g是处理用户支付的,这样就会造成收钱不积极。 协程饥饿问题 本地队列 本地队 阅读全文
posted @ 2023-11-30 22:15
杨阳的技术博客
阅读(375)
评论(0)
推荐(0)
摘要:
go的协程和线程都绕不过GMP,关于GMP基本的工作流程,有go开发经验的大致都懂,这边更多关注GMP如何解决一些类似 协程饥渴的问题,以及底层的大致实现原理。 多线程循环 上篇讲了单线程是如何循环的,这里还是为 GMP的出场 大致介绍下。 工作模型 多个M都去全局G的队列中获取 g,所以,全局g的 阅读全文
posted @ 2023-11-30 18:10
杨阳的技术博客
阅读(193)
评论(0)
推荐(0)
摘要:
协程与线程 线程在创建、切换、销毁时候,需要消耗CPU的资源。 协程就是将一段程序的运行状态打包, 可以在线程之间调度。减少CPU在操作线程的消耗 协程、线程、进程 这块网上非常多文章讲了,就不多叙述了。 归纳下: 进程用分配内存空间 线程用来分配CPU时间 协程用来精细利用线程 协程的本质是一段包 阅读全文
posted @ 2023-11-30 12:21
杨阳的技术博客
阅读(272)
评论(0)
推荐(0)

浙公网安备 33010602011771号