V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  vxyun  ›  全部回复第 1 页 / 共 3 页
回复总数  50
1  2  3  
这是主机游戏还是手游啊
已冲
2022-05-11 00:09:21 +08:00
回复了 AlpacaCode 创建的主题 Go 编程语言 当 P 的数量为 1 时 GMP 调度的问题
https://ww1.sinaimg.cn/large/0063uWevgy1h23rczmx2dj30hn0jvmyn.jpg
每次创建 goruntine 时,都会把当前 p 的 runnext 设置为 newg
2022-01-25 12:13:47 +08:00
回复了 xiaotianhu 创建的主题 知乎 你干了什么『证明自己』的事儿吗
总有人要当废物,那为什么那个人不能是我?
2021-12-30 20:16:39 +08:00
回复了 xiangxihenli 创建的主题 Go 编程语言 goroutine 排队和调度问题
@meiyoumingzi6 本地队列长度是 256 ,因为是单核所以会先把所有的 goroutine 加入本地队列然后全局队列,进入 time.sleep 的时候,go 调度器开始工作
2021-12-30 20:15:14 +08:00
回复了 xiangxihenli 创建的主题 Go 编程语言 goroutine 排队和调度问题
是的,我本地跑了你的代码,每次第一个输出的都是 257 。我的版本是( go version go1.17.1 windows/amd64 )
schedule 方法里有一段: 当全局队列有待执行的 goroutine 时,会通过 schedtick 保证有一定几率从全局队列上取 goroutine 来运行。有可能是这个机制导致先输出的 0 ,可以加个 log 看一下。

if gp == nil {
// Check the global runnable queue once in a while to ensure fairness.
// Otherwise two goroutines can completely occupy the local runqueue
// by constantly respawning each other.
if _g_.m.p.ptr().schedtick%61 == 0 && sched.runqsize > 0 {
lock(&sched.lock)
gp = globrunqget(_g_.m.p.ptr(), 1)
unlock(&sched.lock)
}
}

(不知道怎么贴图片,就贴一下代码段,将就下)
2021-12-30 18:56:57 +08:00
回复了 xiangxihenli 创建的主题 Go 编程语言 goroutine 排队和调度问题
goroutine 不保证顺序的
2021-12-16 16:43:27 +08:00
回复了 root8080 创建的主题 电影 有什么致郁片推荐吗?痛哭流涕的那种
超脱
2021-12-06 14:34:46 +08:00
回复了 troubleShark 创建的主题 酷工作 [上海] 米哈游内推 12 月更新
请问一下 游戏服务器有 jd 吗
2021-12-03 11:08:49 +08:00
回复了 oaza 创建的主题 职场话题 公司入职起花名
土狗
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   973 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 20:20 · PVG 04:20 · LAX 13:20 · JFK 16:20
Developed with CodeLauncher
♥ Do have faith in what you're doing.