Ответом на ваши первые вопросы является «Да», поскольку точки синхронизации (присутствующие в «положи и забери») вводят неявные ограждения памяти.
Для второго вопроса это зависит от того, ожидают ли вызовы А до или после объекта.добавлено к Shared
.Если это раньше, то очевидно, что нет изменений в общем доступе, и поэтому в B нет ничего нового, чтобы увидеть.
Редактировать : Если вызовы A ожидают позже, то изменение видно, потому что вы имелиполучить блокировку перед добавлением, а затем отпустить ее при ожидании, что также вводит забор.
Таким образом, ответ да в обоих случаях.