gitalk
gitalk copied to clipboard
Go语言中的Pinner.Pin
Go语言中的Pinner.Pin
runtime.Pinner 是 Go 1.21.0 中引入的一个类型。 Pinner是一组固定的 Go 对象。可以使用 Pin 方法来固定一个对象。Pinner固定的所有对象都可以使用 Unpin 方法解开固定。
怎么感觉像rust学习了。
怎么感觉像rust学习了。
嗯,功能上和rust一样了
rust里面的概念好像复杂点
和 runtime.KeepAlive() 用途类似吗?
和
runtime.KeepAlive()用途类似吗?
不太一样。 runtime.KeepAlive() 保证不会被垃圾回收,但是对象的地址可能会有变化,从一个位置移动到了另外一个位置.
Pin保证的是对象不会被运行时移动,这样对象的地址就会保持不变,可以为cgo, unsafe安全的处理