|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
||||||
Как определить закончил ли работу поток?24.11.2011, 19:15. Показов 27429. Ответов 31
Метки нет (Все метки)
Здравствуйте, как определить закончил ли работу поток?
0
|
||||||
| 24.11.2011, 19:15 | |
|
Ответы с готовыми решениями:
31
Как сделать, чтобы один поток не закончил работу, пока второй работает? Как уведомить первый поток о том, что второй закончил свою работу |
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||
| 03.02.2023, 13:48 | ||
|
0
|
||
|
2 / 2 / 0
Регистрация: 06.12.2022
Сообщений: 16
|
|||||||||||||
| 03.02.2023, 18:20 | |||||||||||||
|
Затыкаетися на Synchronize.
написал (выше) что попало :-) Затыкаетися на Synchronize.
0
|
|||||||||||||
|
456 / 179 / 32
Регистрация: 04.08.2018
Сообщений: 727
|
||||||
| 04.02.2023, 18:59 | ||||||
|
vrum, синхронайз не даёт зайти в процедуру. Вероятно общий ресурс используется. Если синхронайз заменить на критическую секцию, то работает, вроде даже верно. Как правильно - не знаю.
Без отладки запускал 1000 потоков - отрабатывает быстро. С отладкой больше 170 потоков начинает сильно тормозить.
0
|
||||||
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|||
| 04.02.2023, 20:22 | |||
|
Если же вы завернете код потока в синхрониз, то вообще никакой параллельности не будет, код потока сработает в основном потоке как обычная процедура.
0
|
|||
|
2 / 2 / 0
Регистрация: 06.12.2022
Сообщений: 16
|
|
| 04.02.2023, 20:36 | |
|
Что тогда? Посоветуйте решение.
вытащить CT.Start из первого цикла и запустить отдельно? Почему затык на Synchronize? В вашем (Пытливый) первом варианте ведь работало.
0
|
|
|
456 / 179 / 32
Регистрация: 04.08.2018
Сообщений: 727
|
|||
| 04.02.2023, 20:49 | |||
|
0
|
|||
|
2 / 2 / 0
Регистрация: 06.12.2022
Сообщений: 16
|
||
| 05.02.2023, 10:38 | ||
|
это график зависимости затраченного времени счета от количества потоков. Задача: фильтрация изображения 6k*6k на i9-9900K (8 ядер + hiper threading). Четко видно, что после 16 потоков все сильно затормаживается/останавливается.
0
|
||
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||||||||||||
| 07.02.2023, 13:53 | ||||||||||||
И потому мой код, который использует один контролирующий поток и кучу пчел-потоков работает, а у вас нет.
0
|
||||||||||||
|
2 / 2 / 0
Регистрация: 06.12.2022
Сообщений: 16
|
||
| 07.02.2023, 17:07 | ||
|
Есть вариант с CriticalSection от Rayvenor, тоже рабочий.
0
|
||
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||||||
| 07.02.2023, 17:33 | ||||||
|
Можно без контролирующего потока, но тогда прицепляться надо к какому-то экземпляру TThread для вызова WaitFor, использовать FreeOnNerminate нельзя. Единственное, что он точно сделает это дождется завершения всех потоков и CS там тоже не потребуется. Нужен ли такой калека-контроллер сильно сомневаюсь.
Добавлено через 8 минут Вот так он будет выглядеть. Кликните здесь для просмотра всего текста
1
|
||||||
|
2 / 2 / 0
Регистрация: 06.12.2022
Сообщений: 16
|
|
| 07.02.2023, 18:05 | |
|
Пытливый, Да, этот вариант "не очень". Здесь последний поток будет ждать своего завершения. А если предыдущий ещё не завершился, то уже не завершится.
0
|
|
|
2 / 2 / 0
Регистрация: 06.12.2022
Сообщений: 16
|
||||||
| 08.02.2023, 23:08 | ||||||
|
Если заменить Sleep на CheckSynchronize получим рабочий код, который и хотел.
Кликните здесь для просмотра всего текста
0
|
||||||
| 08.02.2023, 23:08 | |
|
Помогаю со студенческими работами здесь
32
Как в VBA узнать когда процесс закончил работу? Закончил ли свою работу animate, toggle Как вынести работу с SerialPort в отдельный поток? Как создать поток (процесс) контролирующий работу программы ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|