Комментарии 3
Оригинальная статья читается легче и оказывается понятнее, чем ваш перевод. В частности, вот момент, который в вашем переводе вызвал недоумение и заставил заглянуть в оригинал:
Пусть, например, у вас есть struct work_struct, которые в фоне затирают ненужные массивы единичками. После запуска задачи у вас есть другие важные дела и массив вам не нужен.
Что за ерунда? Тогда как в оригинале все складно и очевидно:
Suppose, for example, that you have multiple work items that fill certain elements of an array with ones; whoever spawned the work items will only read the array after calling flush_work().
Было бы круто, если еще бенчмарк прилагался. Интересно, как эти локи ведут себя при увеличении числа писателей.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Приёмы неблокирующего программирования: атомарные операции и частичные барьеры памяти