Я могу думать о причинах, когда это не имеет значения, и 1 ситуация, когда вы НЕ хотите использовать их, когда вы хотите протестировать дизайн поведения с неатомными операциями.Когда НЕ использовать атомные операции?
Каковы другие причины? В частности, я работаю над проектом, который имеет некоторые редкие условия гонки, потому что тест не использует атомные приращения. Мне интересно, почему я бы не всегда использовал атомные приращения, когда функция для него уже существует?
Спасибо!
Позвольте мне рассказать вам о вас. Если вы пишете свою программу, чтобы рабочие генерировались как новые * процессы *, а не новые * потоки *, вам никогда не придется беспокоиться об атомных обновлениях в общую память, потому что процессы не обмениваются памятью. Поэтому вместо того, чтобы спрашивать «почему бы не всегда использовать атомные операции?» не было бы разумным вместо этого спросить **, почему бы не всегда использовать процессы вместо потоков **? –
Интересный момент, я полагаю, проблема та же, что и для того, чтобы не использовать атомику, ресурсы, такие как память/скорость, ограничены. –