Я новичок в Go, и я хотел бы реализовать собственный механизм взаимного исключения, при котором каждый пользователь приложения может выполнять одну процедуру за раз.Чтобы упростить, рассмотрим U1 и U2 как пользователей приложения, а F1 (userId), F2 (userId) и F3 (userId) три различные программы, которые читают / записывают записи из базы данных , которые относятся только к данному пользователю .Мне бы хотелось, чтобы, если вызовы U1 (F1, F2, F3), (F2, F3) не выполнялись до тех пор, пока не завершится F1, выполняются F2 или F3 (в порядке вызова будет оптимальное решение), наконец, оставшийсявыполнен.Блокировка U1 не влияет на U2, но она управляется собственной блокировкой, как описано выше.Как бы вы это реализовали?Есть ли встроенный примитив?Спасибо