Use the one that fits your problem https://go.dev/wiki/MutexOrChannel
But in any case you will end up using a wrapper on either
So akin to Erlang processes.