Форум программистов, компьютерный форум, киберфорум
Наши страницы

Корректно убить поток - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Заполнять в одиннадцати процессах массивы случайными числами http://www.cyberforum.ru/cpp/thread1555788.html
Создать программу, состоящую из 11 процессов. Каждый процесс, кроме 0, должен с генерировать массив целых случайных чисел из 1000 элементов, в промежутке от 0 до 1000. Используя операции...
C++ WMPI - функции коллективного обмена в MPI . Производные типы в MPI помогите пожалуйста - вот задание: Разработать программу, создающую MPI - тип данных C- структуры (long a; unsigned char b; float c ) и передает по помощью функций коллективного обмена экземпляр... http://www.cyberforum.ru/cpp/thread1555764.html
C++ Обработка исключений OpenSSL
Здравствуйте, не нашел в документации к OpenSSL как осуществлять обработку ошибок в нем, например при использовании функции COMP_expand_block, в случае подачи не верных данных(например подача не...
C++ Фильтры в ffmpeg: нужно ли отдельными функциями заполнять AVFilterContext?
Здравствуйте. В интернете в статье программирования на базе ffmpeg приводился пример с использованием функция для заполнения AVFormatContext использовалось avformat_open_input , AVCodecContext...
C++ Работа с OpenCV, нахождение параметров обьектов http://www.cyberforum.ru/cpp/thread1552777.html
Здравствуйте, Мне нужно сделать один проект по учебе, речь идет о програмированнии одной программки. Задача следующая: в распоряжении у меня индустриальная камера и лазер, нужно 'сделать', прибор...
C++ Прекращает читать fstream после ~17000 байт Такая проблема... Я написал программу, которая считывает формат ico, сохраняет заголовок (62 байта) в структуру, и затем отрисовывает в консоли пиксели по 4 байта (RGB, Alpha). Но после отрисовки... подробнее

Показать сообщение отдельно
Убежденный
Ушел с форума
Эксперт С++
15786 / 7223 / 1138
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
27.10.2015, 21:04
Цитата Сообщение от quwy
Только не забудьте объявить ее как volatile.
Цитата Сообщение от Dmitriy_M
То что вы говорите это хаки завязанные на реализацию bool, volatile в конкретных
компиляторах на конкретных архитектурах.
Если речь про Visual C++ и x86/x64, то там как раз есть такие гарантии, часть из них
дает компилятор (Microsoft Specific), часть аппаратура, в итоге иногда можно успешно
обходиться без atomic и ко. В данном конкретном случае (mat_for_c: каждый раз буду
опрашивать переменную, отвечающую за завершение потока) использование volatile корректно.

В худшем случае можно получить ситуацию, описанную quwy выше:

Цитата Сообщение от quwy
ожидающий сигнала поток провернет один лишний цикл вместо того, чтобы завершиться немедленно.
Т.е. из-за эффекта store buffers потоки, выполняющиеся на других процессорах,
могут увидеть новое значение volatile-переменной не сразу, а спустя какое-то
время (например, когда на исходном CPU возникнет прерывание).
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.