0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 37
1

CPP memory_ordering:: compare_exchange_weak/strong

03.08.2018, 09:45. Показов 928. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Итак compare_exchange_weak/strong(expected, new_value, success_mem_ordering, failure_mem_ordering)
В случае необъявления memory_ordering всё понятно - default. Если объявить seccess memory_ordering - failure выбирается автоматически, всё норм.
Непонятны, конкретно, возможности полного выбора.
Ссылаясь на Энтони Вильямса "Мультитрид в действии": "You can’t supply stricter memory ordering for failure than for success". И что это значит? Нет, прекрастно, конечно, но могу ли я послать seccess=acquire, failure=relaxed? Запрета на это нет, однако смысла это тоже не имеет.
Собственно, вопрос в следующем: можно ли использовать такую пару (acquire, relaxed), и что это будет означать?
Будет ли undefined behavior или acquire железный, что произойдёт?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2018, 09:45
Ответы с готовыми решениями:

obj\Debug\IDE.o||In function `Z11OpenProjectv':| C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|2 36|undefined reference to `GetOpenFileNam
obj\Debug\IDE.o||In function `Z11OpenProjectv':|...

С помощью командной строки >namberstr f1.cpp Определить число строк в файле с именем f1.cpp
С помощью командной строки >namberstr f1.cpp Определить число строк в файле с именем f1.cpp

Библиотеки в CPP. Ошибка компиляции | CPP
Доброго вечера! Появился один вопросик недавно. Начал юзать библиотеку <windows.h> для...

Подключение файлов main.cpp some.cpp some.h
Всем привет, программа разделенна на три файла poly.cpp main.cpp poly.h Кто мог бы объяснить как...

1
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
04.08.2018, 19:51 2
Цитата Сообщение от banbezv1999 Посмотреть сообщение
Запрета на это нет, однако смысла это тоже не имеет.
Почему не имеет? См. 7.2.5 Applying the memory model to the lock-free stack

Цитата Сообщение от banbezv1999 Посмотреть сообщение
можно ли использовать такую пару (acquire, relaxed), и что это будет означать?
Можно. Это будет означать, что в случае успеха compare_exchange будет acquire-операцией, а в случае неуспеха — relaxed.
1
04.08.2018, 19:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2018, 19:51
Помогаю со студенческими работами здесь

C:\tsserver\Projects\cpp\codeblocks\MyComp\compiler\mmz\mmz. cpp|29|error: no match for 'operator=' in '* Item = * Source'|
char **Source; TArray<std::string> *Item; ... *Item=*Source;

Вот: source_file.cpp: In function 'int main()': source_file.cpp:10:12: error: 'strlen' was not declared in this scope
#include<iostream> using namespace std; int main() { char a,b; int i,j; cout<<"Напишите...

Разделение программы на .h .cpp .cpp
Никак не пойму как правильно разделять программу на несколько файлов. Вот код : ( в чем...

Использовать void из 1.cpp в 2.cpp
Допустим, есть функция void Hello(). Она в файле 1.cpp. Мне нужно её использовать в файле 2.cpp, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru