|
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
|
|||||||||||
Правильно ли организован поток?08.10.2014, 20:12. Показов 5749. Ответов 94
Метки нет (Все метки)
Всем доброго времени суток, задался таким вопросом, а правильно ли составлен этот код потока, основан на критической секции. привожу :
0
|
|||||||||||
| 08.10.2014, 20:12 | |
|
Ответы с готовыми решениями:
94
Правильно вызвать поток Правильно ли организован поток в приведенном коде Правильно ли организован ввод строки |
| 16.10.2014, 02:29 | |
|
0
|
|
|
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
|
||||||
| 05.11.2014, 22:21 [ТС] | ||||||
|
простите за назойливость, а так будет ли верно организован поток :
работает все хорошо, но правильно ли все организовал ? этот вариант по лучше варианта в 1 посте ? (имеется в виду организация потока) . Буду очень благодарен за все ваши отзывы
0
|
||||||
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|
| 05.11.2014, 22:53 | |
|
Уже лучше, но то, что делает Synchronize(Found) следует перенести в HandleThreadTerminate.
И нет освобождения создаваемых тобой компонентов.
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 05.11.2014, 23:02 | |
|
Лучше вообще методом Синхронайз не пользоваться, особенно если осн.поток непрерывно и интенсивно работает с гуёвыми событиями ввода-вывода.
В идеале при создании доп.потока ему в числе параметров передается еще и некий потокозащищенный объект-очередь Queue, в хвост которой доп.поток может по завершению вычислений поставить их результаты, а из головы которой другой заинтересованный поток (например, основной) выгребает эти результаты для дальнейшей обработки. Ну и про освобождение объектов, создаваемых в контексте доп.потока, замечание вполне уместно. + обработка потенциальных исключений нужна.
0
|
|
|
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
|
| 06.11.2014, 01:46 | |
|
0
|
|
| 06.11.2014, 08:16 | |
|
0
|
|
|
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
|
||||||||||||||
| 06.11.2014, 18:02 [ТС] | ||||||||||||||
а так же, не подскажите правильно ли реализовал присвоение кол-во потоков :
0
|
||||||||||||||
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
||||||
| 06.11.2014, 18:48 | ||||||
|
Не вижу особого смысла в списке FThreads. В данном случае достаточно обычной переменной-счетчика.
Не понятно, что такое:
ProgressBar можно создавать без промежуточной переменной р.
0
|
||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||
| 06.11.2014, 20:22 | ||
|
Да и концепуально доп.поток не должен ничего знать о существовании форм и контролов на них, а при синхронайзе появляется неистребимый соблазн сунуть нос дела осн.потока, куда его совать вообще не следует)
0
|
||
|
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
|
||||||||||||
| 06.11.2014, 22:11 [ТС] | ||||||||||||
Добавлено через 13 минут в принципе ничего страшного нет, что неограниченное кол-во потоков создается. По сути, они же сразу уничтожаются , тем самым освобождая место. Хотя, если будет 10000 строк в мемо... хм.. Добавлено через 6 минут хотяя.. бред сказал ... можете в нужное русло направить ?
0
|
||||||||||||
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|||
| 06.11.2014, 22:14 | |||
|
Да и с какой стати потоков может стать больше, чем задано, если ты должен контролировать процесс их создания.
0
|
|||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 06.11.2014, 22:14 | |
|
Потоков должно быть не больше чем кол-во процессоров (ядер) * кол-во нитей на ядро (гипертрединг)
С каждым потоком должна быть ассоциирована очередь запросов ввода/вывода для передачи ему заданий и возврата результатов их выполнения Можно и довольно удобно использовать очередь, встроенную в системный механизм потоков - очередь APC. Помещение элемента в очередь потока осуществляется вызовом QueueUserAPC, в этом случае тело поточной процедуры будет выглядеть примерно так: while not Terminated do SleepEx(INFINITE); Т.е. поток стартует и засыпает в ожидании наличия элементов в очереди. При обнаружении оных поток пробуждается, исполняет процедуру с параметром (или несколько оных, если в очереди несколько элементов), помещенную в очередь вызовом QueueUserAPC и вновь засыпает.
0
|
|
|
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
|
||||||||||||||
| 06.11.2014, 22:39 [ТС] | ||||||||||||||
0
|
||||||||||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 06.11.2014, 22:50 | |
|
0
|
|
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|||
| 06.11.2014, 23:13 | |||
|
0
|
|||
| 06.11.2014, 23:13 | |
|
Правильно завершить поток Правильно завершить поток
Как правильно отправить в поток?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|