You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
任何完美的技术都有被滥用的时候,CGO 的这种看似完美的规则也是存在隐患的。我们假设调用的 C 语言函数需要长时间运行,那么将会导致被他引用的 Go 语言内存在 C 语言返回前不能被移动,从而可能间接地导致这个 Go 内存栈对应的 goroutine 不能动态伸缩栈内存,也就是可能导致这个 goroutine 被阻塞。因此,在需要长时间运行的 C 语言函数(特别是在纯 CPU 运算之外,还可能因为需要等待其它的资源而需要不确定时间才能完成的函数),需要谨慎处理传入的 Go 语言内存。
Goroutine 在调用 C 函数的过程(即使不 pin 内存)中本身不是阻塞的吗, 为什么还需要动态伸缩栈呢
期待解惑 感谢
The text was updated successfully, but these errors were encountered:
有点不理解 2.7.2 中的这部分
Goroutine 在调用 C 函数的过程(即使不 pin 内存)中本身不是阻塞的吗, 为什么还需要动态伸缩栈呢
期待解惑 感谢
The text was updated successfully, but these errors were encountered: