|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
||||||
Delphi 6-7 Как синхронизировать потоки в Application Console?07.09.2021, 21:38. Показов 3563. Ответов 36
Метки нет (Все метки)
Здравствуйте, создаю многопоточное Application Console приложение, но потоки в нём не синхронизируются стандартно
Synchronize(sync); просто не работает как правильно это сделать ?
0
|
||||||
| 07.09.2021, 21:38 | |
|
Ответы с готовыми решениями:
36
Как перевести Console Application в Windows Application Как синхронизировать потоки?
|
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
||||||
| 13.09.2021, 03:20 [ТС] | ||||||
|
Я короче нашёл уже на каком то Японском форуме, ответить нормально очевидно сложно было
0
|
||||||
|
|
|
| 13.09.2021, 07:11 | |
|
совершенно не понял, что же тут есть такое что вам еще не сказали в предыдущих постах
и для чего этот цикл while not terminated ? у вас поток должен в каком-то цикле ходить? почему про это ничего нет в вопросе совершенно неясно, что решает этот кусок кода, где написано используйте CS но самой CS нет? одни вопросы но раз автор доволен, так тому и быть
0
|
|
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
||||||
| 13.09.2021, 09:09 [ТС] | ||||||
|
Смотри критическая секция останавливает потоки пока не выполниться кусок кода как правило чтения/записи
Синхронизация синхронизирует потоки чтобы эти самые потоки приходили к единому знаменателю верно ? Там правда цикл ни к чему я думаю что достаточно будет:
0
|
||||||
|
Житель Земли
|
||
| 13.09.2021, 09:22 | ||
|
Критическая секция - это и есть один из видов синхронизации, в данном случае применяемый для того, чтобы обеспечить целостность общих данных, к которым одновеременно имеют доступ несколько потоков.
Добавлено через 2 минуты
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
|
| 13.09.2021, 09:27 | |
|
Синхронизация сама использует критические секции.
Добавлено через 2 минуты Terminated это просто флаг, который дает знать потоку, что его хотят остановить из-вне.
0
|
|
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
||||||
| 13.09.2021, 09:38 [ТС] | ||||||
|
Я в результате понял что синхронизация не то что мне нужно, просто потоки начинают чудить с циклом for в них не помогает не критическая секция не синхронизация потоки просто встают "навсегда"
0
|
||||||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
|
| 13.09.2021, 09:44 | |
|
С такой обработкой потоки не нужны, максимум 1 поток. Потому, что вся работа идет с глобальным объектом и критическая секция на все время работы, потоки будут работать последовательно, а не параллельно.
0
|
|
|
Житель Земли
|
|||||
| 13.09.2021, 09:52 | |||||
|
Добавлено через 2 минуты А потом возникает удивление
0
|
|||||
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||
| 13.09.2021, 12:19 | ||
|
1. Код внутри КС должен работать максимально быстро, для уменьшения задержек других потоков. 2. В критической секции нельзя использовать цикл, в противном случае параллельность вырождается в последовательность.
0
|
||
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
|
| 13.09.2021, 12:24 [ТС] | |
|
Ты имеешь ввиду как то параллельным потоком это проделывать а как ?
0
|
|
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
||
| 13.09.2021, 15:20 | ||
|
0
|
||
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 13.09.2021, 15:58 | ||
|
Создал пачку потоков, виртуально разделил массив на секции и запустил каждый поток обрабатывать каждую секцию. Т.е., циклы внутри каждого потока крутились, но друг-другу не мешали.
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
|
| 13.09.2021, 16:00 | |
|
Constcat, но ведь это было не в одной области через критические секции? Потому и крутилось параллельно.
0
|
|
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 13.09.2021, 16:26 | ||
|
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
|
| 13.09.2021, 16:46 | |
|
Constcat, вполне возможно. Выложит полностью задачу, тогда будет видно. А пока не понятно, что он хочет.
0
|
|
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
|
| 20.09.2021, 07:12 [ТС] | |
|
И как в потоках работать с циклом for правильно в результате ?
0
|
|
|
3764 / 2272 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||
| 20.09.2021, 10:05 | ||
|
2. Критическая секция помещается внутрь цикла 3. Отказаться от прямого обращения к визуальным компонентам, используя механизм собственных событий.
0
|
||
| 20.09.2021, 10:05 | |
|
Как правильно синхронизировать потоки? Как синхронизировать потоки и окно ShowDialog? Разница запуска функция Console Application и VCL Forms Application как написать в Console application Как реализовать сессии в Console Application Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка 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 реально казались вершиной жары, когда можно было весь день пропадать на. . .
|