Форум программистов, компьютерный форум CyberForum.ru

Остановка рабочей функции потока - C++

Восстановить пароль Регистрация
 
xTr1m
29 / 29 / 8
Регистрация: 06.03.2013
Сообщений: 151
08.08.2016, 12:10     Остановка рабочей функции потока #1
День добрый. Задумался над таким вот вопросом. Допустим, у меня есть две функции get(StopObj obj) и process(StopObj obj).
Эти две функции я запускаю из нескольких потоков. Сам StopObj obj это некий сигнал функциям, что работу стоит прервать. Делают ли так вообще? При этом достаточно ли в StopObj добавить флаг типа bool, по которому эти функции будут определять нужно ли преждевременно завершать работу?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2016, 12:10     Остановка рабочей функции потока
Посмотрите здесь:

Visual C++ Остановка потока по таймеру
C++ Передача потока по параметру функции
C++ WinAPI В рабочей области отображена надпись "Нажмите правую клавишу мыши над рабочей областью"
C++ Builder Выход (остановка) функции
C++ return в функции потока
Ошибка в функции потока C++ Builder
Boost C++ Остановка потока, в котором вызвана синхронная функция ввода вывода
C++ Остановка второго потока останавливает также первый поток по непонятной причине
C++ Builder Остановка потока onClose формы
Правильная остановка потока C++ Builder
Обращение потока к функции-члену класса C++
C++ Остановка потока по нажатию клавиши

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pav1uxa
1731 / 1571 / 604
Регистрация: 23.01.2014
Сообщений: 5,668
Завершенные тесты: 1
08.08.2016, 13:07     Остановка рабочей функции потока #2
Цитата Сообщение от xTr1m Посмотреть сообщение
Сам StopObj obj это некий сигнал функциям, что работу стоит прервать. Делают ли так вообще?
Да. Его еще называют State Object.
xTr1m
29 / 29 / 8
Регистрация: 06.03.2013
Сообщений: 151
08.08.2016, 14:16  [ТС]     Остановка рабочей функции потока #3
Ага. Единственное, я написал функции, куда передаётся объект по значению. Правильнее ведь, как я понимаю, передавать по ссылке?
pav1uxa
1731 / 1571 / 604
Регистрация: 23.01.2014
Сообщений: 5,668
Завершенные тесты: 1
08.08.2016, 14:55     Остановка рабочей функции потока #4
Цитата Сообщение от xTr1m Посмотреть сообщение
Правильнее ведь, как я понимаю, передавать по ссылке?
Ну в общем случае да. Хотя если объект не слишком большой то разницы заметной не будет.

Единственное что, я думаю Вы понимаете, что передавать объект по значению (копированием) в функцию можно только в том случае, если внутри функции не нужно изменять его состояние...
xTr1m
29 / 29 / 8
Регистрация: 06.03.2013
Сообщений: 151
08.08.2016, 15:05  [ТС]     Остановка рабочей функции потока #5
Или лучше по значению передать, чтобы исключить возможность изменения состояния в процессе выполнения рабочей функции?

p.s. и еще такой вопрос? достаточно ли просто иметь поле bool, которое атомарно проверять? или нужно предусммотреть нечто по-хитрее?
pav1uxa
1731 / 1571 / 604
Регистрация: 23.01.2014
Сообщений: 5,668
Завершенные тесты: 1
08.08.2016, 17:44     Остановка рабочей функции потока #6
Цитата Сообщение от xTr1m Посмотреть сообщение
Или лучше по значению передать, чтобы исключить возможность изменения состояния в процессе выполнения рабочей функции?
Да как хотите) Обычно делают const T&. Тут и по ссылке передача, и изменять нельзя.

Цитата Сообщение от xTr1m Посмотреть сообщение
p.s. и еще такой вопрос? достаточно ли просто иметь поле bool, которое атомарно проверять? или нужно предусммотреть нечто по-хитрее?
Ну смотря как. Если это просто "сигнал" для остановки выполнения, то наверное нет смысла. А если Вы его будете туда сюда щелкать (включать, отключать), то можно мьютекс какой-нибудь замутить)
Yandex
Объявления
08.08.2016, 17:44     Остановка рабочей функции потока
Ответ Создать тему
Опции темы

Текущее время: 17:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru