【发布时间】:2014-08-18 11:05:16
【问题描述】:
Golang 支持 LockOSThread() 使当前 goroutine 独占绑定到当前 OS 线程,也可以 UnlockOSThread()。
是否有任何使用案例受益于此功能?
【问题讨论】:
-
假设你有 8 个处理器线程和 16 个 goroutine。这意味着每个真实线程平均有两个 goroutine。现在,如果您正在构建实时的东西,您希望能够尽快运行代码并避免 goroutine 与线程的匹配,您不希望您的实时代码“落后于”不太重要的代码。这可以解决优先级反转问题等。虽然计划激活可以缓解这种情况。
-
在golang.org/src/pkg/net/lookup_windows.go 中可以找到使用此功能的一个很好的例子。我建议在 Google 上搜索“lockosthread site:golang.org/src/pkg/”。
-
感谢您的信息。 @BenjaminGruenbaum。
-
例子很棒,谢谢@Intermernet
标签: go