gitalk icon indicating copy to clipboard operation
gitalk copied to clipboard

Go语言中的Pinner.Pin

Open utterances-bot opened this issue 1 year ago • 5 comments

Go语言中的Pinner.Pin

runtime.Pinner 是 Go 1.21.0 中引入的一个类型。 Pinner是一组固定的 Go 对象。可以使用 Pin 方法来固定一个对象。Pinner固定的所有对象都可以使用 Unpin 方法解开固定。

https://colobu.com/2024/02/02/Pinner-Pin/

utterances-bot avatar Feb 02 '24 09:02 utterances-bot

怎么感觉像rust学习了。

tanqiangyes avatar Feb 02 '24 09:02 tanqiangyes

怎么感觉像rust学习了。

嗯,功能上和rust一样了

smallnest avatar Feb 02 '24 09:02 smallnest

rust里面的概念好像复杂点

tanqiangyes avatar Feb 02 '24 10:02 tanqiangyes

runtime.KeepAlive() 用途类似吗?

xmx avatar Feb 04 '24 02:02 xmx

runtime.KeepAlive() 用途类似吗?

不太一样。 runtime.KeepAlive() 保证不会被垃圾回收,但是对象的地址可能会有变化,从一个位置移动到了另外一个位置. Pin保证的是对象不会被运行时移动,这样对象的地址就会保持不变,可以为cgo, unsafe安全的处理

smallnest avatar Feb 04 '24 03:02 smallnest