|
Языки программирования семейства Pascal / Про многопоточность подскажите
|
|||
---|---|---|---|
#18+
А обратно? Оно в обе стороны будет работать? Насчет событий, ну в моей практике отношения между потоками обычно были несимметричными. Например один поток подготавливает какие-то данные и выдает другому, чтобы тот передал их по сети. Или один поток всё время обменивается данными с каким-то устройством и периодически или сам их выдает или у него запрашивают какие-то данные. Вот кстати со скуля один человек учебник написал несколько лет назад про многопоточность: https://github.com/loginov-dmitry/multithread/blob/master/multithread_in_delphi_for_beginners.md https://resql.ru/forum/topic.php?fid=58&tid=2036872 Правда не скажу сейчас, насколько хорошо написано, хотя начинал читать. ... |
|||
:
Изменено: 01.04.2024, 18:50 - s62
Нравится:
Не нравится:
|
|||
01.04.2024, 18:46 |
|
Языки программирования семейства Pascal / Про многопоточность подскажите
|
|||
---|---|---|---|
#18+
Ну и тем более такой тяжеловесный механизм использовать для общения между потоками - плохо имхо. Неизвестно, что за служба у Просто Трепа и что за обмен данными там между потоками. p.s. Один раз - сообщения от потока в другой доп. поток, так что там цикл обработки сообщений делали. А из доп. потока в основной поток GUI приложения передавать данные через PostMessage или оповещать через это, так это много раз использовал, это по-моему удобно. Ну со службами тут другая история. ... |
|||
:
Изменено: 01.04.2024, 19:05 - s62
Нравится:
Не нравится:
|
|||
01.04.2024, 19:00 |
|
Языки программирования семейства Pascal / Про многопоточность подскажите
|
|||
---|---|---|---|
#18+
Надо смотреть, что за задача. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2024, 19:13 |
|
Языки программирования семейства Pascal / Про многопоточность подскажите
|
|
---|---|
#18+
IT-Клоп [игнорируется] Один поток может подготавливать данные, потом "взводить" событие, а второй по событию их считывать и обрабатывать. Как одна из простых схем. ... |
|
:
|
|
01.04.2024, 19:21 |
|
Языки программирования семейства Pascal / Про многопоточность подскажите
|
|||
---|---|---|---|
#18+
Просто Трёп [игнорируется] Если схема такая, что один пихает данные, а второй берет их и потом куда-то отправляет, то очередь можно использовать. Поток, который пихает, добавляет элементы в очередь. А который берет и что-то с ними делает, забирает из очереди по мере возможности, пока в очереди что-то есть. Вот тут, если использовать не потокобезопасную очередь, можно как раз использовать критическую секцию. Первый поток входит в секцию, добавляет элемент, выходит, второй входит, забирает, выходит. ... |
|||
:
Изменено: 01.04.2024, 19:47 - s62
Нравится:
Не нравится:
|
|||
01.04.2024, 19:41 |
|
Языки программирования семейства Pascal / Про многопоточность подскажите
|
|
---|---|
#18+
Просто Трёп [игнорируется] Очереди-то есть: https://docwiki.embarcadero.com/Libraries/Alexandria/en/System.Generics.Collections.TQueue https://docwiki.embarcadero.com/Libraries/Alexandria/en/System.Generics.Collections.TThreadedQueue Я когда-то сам на основе динамического массива очередь делал. Но тут уже готовые. ) ... |
|
:
|
|
01.04.2024, 19:50 |
|
|
Start [/forum/search.php?do_search=1&tid=16781&author_mode=wrote_post&author=s62&start_from=749094]: |
0ms |
get settings: |
0ms |
get forum list: |
4ms |
searching: |
10ms |
get settings: |
1ms |
get forum list: |
3ms |
get topic data: |
3ms |
check forum access: |
1ms |
check topic access: |
1ms |
get forum data: |
1ms |
get found posts: |
22ms |
track hit: |
27ms |
get online users: |
37ms |
check new: |
1ms |
others: | 313ms |
total: | 424ms |
0 / 0 |