> да магические числа какя разнаца ? возми одна нить умнозает на 10
> другая на 20 результат в память.И зачем? Ирреал кейс.
Если необходимо, чтобы каждый тред все время умножал значение, полученное каким-либо другим тредом - то только полные блокировки (вероятно мандатные спинлоки, с сериализацией).
Если нас интересует, чтобы при этом читатели смогли работать быстро, и не критична последовательность чтения-записи - лучше всего RCU.
Читаем старое значение (входим в критическую секцию читателя RCU), умножаем, пишем новое значение отдельно, заменяем поинтер на новое значение. "Старые" читатели, которые выполняются в этот момент - видят 10, новые, которые успеют запуститься - 20.
Все отработают. После этого писатель, дождавшийсь освобождения указателя, удалит старое значение полностью. Можно даже в отдельном треде.
Но для точного приложения надо знать реальный юзкейс, а вот так "один тред - 10, другой - 20" - это слишком абстрактно.