Я использую C ++ 11 в течение нескольких месяцев, я наслаждаюсь большинством компонентов стандартной библиотеки C ++ 11, за исключением компонентов, связанных с атомарными операциями.
На мой взгляд, программирование без блокировок слишком сложно, чтобы понять его правильно, в то время как программирование на основе блокировок интуитивно понятно и легко для понимания и отслеживания. Итак, я должен рассмотреть значение программирования без блокировки.
Чтобы полностью понять программирование без блокировок и программирование на основе блокировок, мне интересно:
Каковы плюсы и минусы программирования без блокировок и программирования на основе блокировок?
Очевидно, что программирование без блокировок может быть трудно сделать правильно. Однако, если кто-то другой уже сделал что-то, что работает без блокировки (например, очередь, список, вектор и т. Д.), То использование этого, безусловно, очень полезно.
Блокировки всегда делают вещи медленнее — потому что вы должны взять блокировку, ТОГДА выполнить операцию, которая вам необходима для какого-либо общего объекта, и ТОГДА снять блокировку — это неизбежно займет больше времени, чем выполнение той же вещи с использованием правильной операции «без блокировки» ,
Других решений пока нет …