Да, можно, но при этом требуется обеспечить синхронизацию доступа для предотвращения гонок данных.
Наиболее распространенные подходы:
Мьютексы (sync.Mutex):
go
Каналы (chan):
Можно передавать ownership буфера между горутинами или использовать канал для координации доступа.
go
Пул буферов (sync.Pool):
Менее острая необходимость в синхронизации доступа к самому буферу, если каждая горутина берет буфер из пула, использует его, а затем возвращает.
go
Важно: Использование буфера без синхронизации в конкурентной среде приведет к состоянию гонки данных, что является причиной непредсказуемого поведения программы и сложно отлавливаемых ошибок.