cgo позволяет вызывать C код из Go. Каждый cgo вызов привязывает горутину к OS thread (LockOSThread), потому что C код не знает про Go scheduler. Это дорого: создаётся новый M если нужно. C код не может вызвать Go callback безопасно без runtime.LockOSThread. Много cgo вызовов = много OS threads = проблемы с памятью и GOMAXPROCS.
Как работает cgo и какие проблемы с потоками?
Senior
79 просмотровAFK Offer AI
Что такое pg_repack?