Я пытаюсь реализовать счетчик int
, который всегда увеличивается на один поток (Thread1)
и всегда уменьшается на другой (Thread2)
.Thread safe counter C++ 11
одним из вариантов является использование std::atomic<int>
.
Хотя у меня есть другая идея, где у меня есть две переменные: counterIncr
и counterDecr
. Thread1
всегда увеличивает counterIncr
, а Thread2 всегда уменьшает counterDecr
.
И я буду использовать сумму (counterIncr+counterDecr)
в качестве окончательного результата.
Имеет ли это какое-либо преимущество в производительности? Это безжизненно?
Обычно лучше использовать потоки ресурсов, которые не используются совместно. Но когда вы возьмете сумму? После окончания резьбы? –
зависит от того, когда и где вычисляется конечный результат. – Minato
Hi Anon. Сумма всегда будет использоваться 'Thread1' – ashwin929