runtime.LockOSThread() привязывает текущую горутину к текущему OS-треду: никакая другая горутина не будет выполняться на этом треде, и эта горутина не мигрирует на другой тред. Зачем: некоторые C библиотеки требуют вызова из одного треда (OpenGL, GUI frameworks). Также нужно для thread-local storage в C. Обратная операция — UnlockOSThread. Main горутина автоматически залочена на main thread. Используется редко, только для CGo и системных вызовов.