Компиляторы Microsoft Visual C ++ имеют EnterCriticalSection
и ExitCriticalSection
объекты для синхронизации между потоками.
Что такое эквивалент GCC?
Я вижу ссылки на __sync_synchronize
вместе с __scoped_lock
На самом деле я вижу упоминание ряда атомарных __sync
функций наряду с рядом
__atomic
единицы.
Я на самом деле использовал __sync_fetch_and_add
для моего атомного приращения
Должен ли я использовать __atomic_add_dispatch
вместо этого?
Какая разница?
Какие из них я должен использовать? Существуют ли какие-либо конструкции в C ++, которые я могу использовать как в последней версии GCC, так и в Visual C ++ 2010, которые доступны, поскольку я собираюсь написать кроссплатформенный код.
Я вижу, что в boost есть некоторые функции, но по разным причинам мне не разрешено использовать boost под windows.