V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  vxyun  ›  全部回复第 1 页 / 共 3 页
回复总数  53
1  2  3  
2023-04-14 18:55:48 +08:00
回复了 alovez 创建的主题 酷工作 想做游戏的看过来,我们的独立游戏工作室招人啦
这是主机游戏还是手游啊
已冲
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 不保证顺序的
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2761 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 00:16 · PVG 08:16 · LAX 16:16 · JFK 19:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.