Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ С++ memory ordering: fetch_sub(acquire) и spinlock на основе atomic_flag (Энтони Вильямс "Мультитрид в действии") https://www.cyberforum.ru/ cpp/ thread2281073.html
Читаю Вильямса по мультитриду. 1) В книге приведён пример класса spinlock на основе atomic_flag: class spinlock_mutex{ std::atomic_flag flag; public: spinlock_mutex():flag(ATOMIC_FLAG_INIT){} void lock(){while(flag.test_and_set(std::memory_order_acquire));} void unlock(){flag.clear(std::memory_order_release);} };
C++ Как создать очередь потоков с несколькими workers?
-организовать threadpool с очередью и несколькими worker, которые будут выполнять функцию детекции лиц с параметром - именем файла изображения - количество workers должно быть регулируемым, нагружать их равномерно Гуглил и читал статьи и примеры, ничего дельного не нашел. Можете привести самый простой пример создания очереди потоков с несколькими workers. Как регулировать их число и...
C++ Borland C++ 4.5-4.53 есть у кого-то ? https://www.cyberforum.ru/ cpp/ thread2280569.html
САБЖ. Старые версии под DOS & Win_3.11 Если у кого есть, киньте ссылку на мыло(jon@ya.ru) или в скайп: legat79
C++ Энтони Вильямс. Цпп мультитрид в действии::Листинг 3.4::Почему конструктор копирования deleted?! https://www.cyberforum.ru/ cpp/ thread2279411.html
Описывается класс в котором хранится std::stack и std::mutex. Реализация призвана избавиться от проблем с top-pop параллелизмом std::stack-а. Listing 3.4 An outline class definition for a thread-safe stack #include <exception> #include <memory> struct empty_stack: std::exception { const char* what() const throw(); };
C++ Что надо в default для возврата ввода cin >> result?
#include <iostream> using namespace std; int main() { setlocale(0,"Russian"); int a, b, resul; cout << "Введите а i b" << endl;
C++ Как правильно расставить mutex https://www.cyberforum.ru/ cpp/ thread2278251.html
Есть две функции: одна подгружает изображения и заносит их в вектор, вторая - берет изображения из вектора и обрабатывает их с помощью войд функции FindImage. Я разделил приложение на два потока, как правильно расставить mutex, чтобы приложение было потокобезопасным и операции выполнялись параллельно? void readImages(vector <Mat> &vectorOfImages, vector <string> &nameOfImages, vector...
C++ Ошибка при работе с потоками Есть две функции: одна закидывает изображения в вектор, а вторая забирает их оттуда и обрабатывает. Разделил приложение на два потока, хочу чтобы функции работали параллельно, изображения не обрабатывались, когда вектор пустой,и функция void processingImages(vector <Mat> &vectorOfImages, Mutex& mutex) ожидала наполнение вектора. Вроде, все работает, проверил дебагом, функция... https://www.cyberforum.ru/ cpp/ thread2278032.html C++ Можете скиуть код программы
Я увидеть исходный код программы, пользовался многими прогами, но они его не показывали. Кто можете скинуть код?
C++ Использование алгоритмов в multimap Народ, можно ли вообще каким-то образом использовать алгоритмы remove(),remove_if(), fill() с multimap? С вектором я умею их применять, но как их применять с multimap, если он хранит пары(ключ,значение) и ключ является константным. Можно ли как-то не изменяя ключ изменять только значение. https://www.cyberforum.ru/ cpp/ thread2277634.html C++ Map с указателями на функцию https://www.cyberforum.ru/ cpp/ thread2276949.html
Нужно сделать: Map<string, указатель на функцию>. Но проблема в том что работает у меня только с функциями типа void и без аргуемнтнов. Так работает: Вызываемая функция void func() { printw("%s", "FUNC 1"); }
Как удалить скрытую папку вместе с содержимым C++
Добрый день. Необходимо удалить скрытую папку вместе с содержимым в ней, либо удалить содержимое папки. Путь папки известен: D:/ymir work в ней необходимо удалить файлы *.gr2, *.mse Имеется код: bool PackInitialize(const char * c_pszFolder) { NANOBEGIN string block_folder; block_folder == "D:\\ymir work";
C++ Boost asio ssl connect не получается сделать timeout 10sec https://www.cyberforum.ru/ cpp/ thread2275079.html
Не очень-то я сильна в библиотеке boost 1.67.0, от чего прошу помощи экспертов. Спустя какое-то время, запрос ждет ответа от сервера бесконечно, из-за отсутствия связи и приходится перезапускать программу. Boost взяла по причине упростить написание кода. Но вот как выставить timeout если соединение отвалилось понять не могу :( Если можно как-то проще вставить этот кусочек кода в то что у меня...
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 37
0

CPP memory_ordering:: compare_exchange_weak/strong - C++ - Ответ 12577738

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

Студворк — интернет-сервис помощи студентам
Итак 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 железный, что произойдёт?

Вернуться к обсуждению:
CPP memory_ordering:: compare_exchange_weak/strong C++
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
С помощью командной строки &gt;namberstr f1.cpp Определить число строк в файле с именем f1.cpp

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

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

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2018, 09:45
Помогаю со студенческими работами здесь

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

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

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

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

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