LINUX.ORG.RU

История изменений

Исправление shkolnick-kun, (текущая версия) :

А что мешало прочесть предыдущие два абзаца на cppreference.com???

Sequential ordering may be necessary for multiple producer-multiple consumer situations where all consumers must observe the actions of all producers occurring in the same order.

Total sequential ordering requires a full memory fence CPU instruction on all multi-core systems. This may become a performance bottleneck since it forces the affected memory accesses to propagate to every core.

Это нужно для решения проблемы «производитель-потребитель», когда каждый потребитель должен знать что сделал каждый производитель.

Так вот, если верить педивикии, то в случае не атомиков проблема решается либо одним мьютеском и двумя условными переменными, либо одним мьютексом и двумя счётными семафорами, а не кучей мьютексов, как у тебя.

Причём решение на атомиках аналогично, ибо требует глобального барьера памяти, т.е. глобальной блокировки на уровне железа.

Исправление shkolnick-kun, :

А что мешало прочесть предыдущие два абзаца на cppreference.com???

Sequential ordering may be necessary for multiple producer-multiple consumer situations where all consumers must observe the actions of all producers occurring in the same order.

Total sequential ordering requires a full memory fence CPU instruction on all multi-core systems. This may become a performance bottleneck since it forces the affected memory accesses to propagate to every core.

Это нужно для решения проблемы «производитель-потребитель», когда каждый потребитель должен знать что сделал каждый производитель.

Так вот, если верить педивикии, то в случае не атомиков проблема решается либо одним мьютеском и двумя условными переменными, либо одним мьютексом и двумя счётными семафорами, а не кучей мьютексов, как у тебя.

Причём решение на атомиках аналогично, ибо требует глобального барьера памяти, т.е. глобальной блокировки на уровне железа.

Исходная версия shkolnick-kun, :

А что мешало прочесть предыдущие два абзаца на cppreference.com???

Sequential ordering may be necessary for multiple producer-multiple consumer situations where all consumers must observe the actions of all producers occurring in the same order.

Total sequential ordering requires a full memory fence CPU instruction on all multi-core systems. This may become a performance bottleneck since it forces the affected memory accesses to propagate to every core.

Это нужно для решения проблемы «производитель-потребитель», когда каждый потребитель должен знать что сделал каждый производитель.

Так вот, если верить педивикии, то в случае не атомиков проблема решается либо одним мьютеском и двумя условными переменными, либо одним мьютексом и двумя счётными семафорами, а не кучей мьютексов, как у тебя.

Причём решение на атомиках аналогично, ибо требует глобального барьера памяти, т.е. глобальной блокировки на уровне железа.