|
4 / 4 / 2
Регистрация: 24.05.2013
Сообщений: 300
|
||||||||||||||||||||||||||
Область видимости общей переменной для потоков + закрытие потоков07.06.2017, 00:22. Показов 2913. Ответов 5
Метки нет (Все метки)
Есть два вопроса про потоки.
Первый. Как можно сделать общую переменную для основного потока и моих ?
0
|
||||||||||||||||||||||||||
| 07.06.2017, 00:22 | |
|
Ответы с готовыми решениями:
5
Общение пхп потоков, есть ли область видимая для всех пхп потоков? Задать область видимости переменной для всех форм |
|
Ушел с форума
|
|||
| 07.06.2017, 01:03 | |||
|
Либо используй atomic из Boost или std.
0
|
|||
|
4 / 4 / 2
Регистрация: 24.05.2013
Сообщений: 300
|
|||
| 07.06.2017, 01:08 [ТС] | |||
|
0
|
|||
|
Ушел с форума
|
|
| 07.06.2017, 01:17 | |
|
А, ты об этом... Ну тогда надо в поток отправить какой-то сигнал, чтобы он
вернул управление системе. Это правильный путь. TerminateThread ведет к "провалу всей операции", ибо поток прибивается в совершенно неопределенный момент, где, например, могут удерживаться блокировки и т.д.
0
|
|
|
4 / 4 / 2
Регистрация: 24.05.2013
Сообщений: 300
|
|
| 07.06.2017, 01:36 [ТС] | |
|
Убежденный, что за сигнал ? Как ?
Для моего потока это зайдет, там где на цикле проверяется флаг выхода. Но в любом другом случае же будет сложнее, надо будет периодически проверять флаг выхода. С TerminateThread проблема только в том, что он не закрывает основной поток, но закрывает потоки, от которых зависит основной. (я их не создавал) Может быть можно проверить как-то можно ли закрыть поток (наличие флага THREAD_TERMINATE) . Либо же хранить список ХАНДЛОВ моих потоков, в закрытии которых (без исключений) я уверен. Добавлено через 7 минут + если поток переведен в режим SuspendThread(), то выйти из него его же средствами не выйдет. Добавлено через 3 минуты + сейчас такая ситуация, что я имею некоторое число потоков, которые я создал. Я это число знаю. Все потоки в режиме Suspended. К моим потокам прибавляется основной и еще несколько потоков, которые я не добавлял, но они есть. Как правило от 1 до 4. Как в данной ситации правильно закрыть все мои потоки ? Просто гулять по всему списку потоков и пробуждать их все, чтобы они могли сами по флагу выйти - я не могу. Как отличить мой от не моих...?
0
|
|
|
Ушел с форума
|
|||||
| 07.06.2017, 09:40 | |||||
Сообщение было отмечено Evgen8 как решение
РешениеПоток, получив такой сигнал, должен выйти из функции. Тогда он завершится. Это ЕДИНСТВЕННЫЙ корректный способ завершения потока, других не существует (и не нужно даже пытаться лепить какие-то "костыли" - оно не будет корректно работать). Это вообще функция для отладки и прочих специальных вещей, в 99% нормального софта таких функций не должно быть. пока все соответствующие хэндлы не перейдут в сигнальное состоение. Другого пути нет.
1
|
|||||
| 07.06.2017, 09:40 | |
|
Помогаю со студенческими работами здесь
6
Открытие-закрытие потоков Принудительное закрытие потоков Закрытие потоков ввода/вывода Закрытие формы с остановкой потоков
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 31.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 31.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 30.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|