|
0 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 5
|
|
Обмен данными между потоками18.02.2014, 17:59. Показов 13213. Ответов 29
Метки нет (Все метки)
Здравствуйте уважаемые форумчане!
Реализую многопоточное приложение. Один поток в реальном времени читает данные с USB и пишет их в массив (массив большой, 256*65536), второй должен эти данные обрабатывать (нарезать на другие массивы, поменьше, что-то делать с ними, результат складывать в финальный массив), третий занимается тем, что выводит финальный массив на Panel. Потоки делаю не CreateThread, а TThread, ради VCL-компонентов. Вопрос вот в чем: как реализовать обмен данными между потоками? Иными словами, как первый большой массив передать из 1го потока во 2ой и как передать последний массив из 2го потока в 3й? С классами на данный момент знаком очень поверхностно, раньше только с функциями работал. Заранее спасибо за помощь!
0
|
|
| 18.02.2014, 17:59 | |
|
Ответы с готовыми решениями:
29
Обмен данными между компьютером и ПЛК по TCP Обмен данными между RAD Studio Berlin и cmd Обмен данными между программой и сервисом через NamedPipe |
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||||
| 20.02.2014, 15:09 | ||||
|
1
|
||||
|
|
|||||
| 20.02.2014, 15:57 | |||||
|
Собственно это и нужно обеспечить программисту. Переменная bool так же разделяемая ресурс, как и другие данные. Не по теме: Любители поучить плохому ...
0
|
|||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 20.02.2014, 16:04 | |
|
Avazart, вы сами почитайте, что я пишу. Я же вам говорю, что да, правильно делать синхронизацию не костылями, а проверенными методами. Кто спорит? Но так же говорю, что можно (я не выставляю это как какую-то безоговорочную истину) реализовать синхронизацию своими руками. Вы чуете разницу или опять не чуете? А конкретнее через выставление флага окончания работы с разделяемыми данными
Прекратите читать то, что вы хотите видеть - читайте, что до вас пытаются донести.
0
|
|
|
|
|||
| 20.02.2014, 16:15 | |||
|
Или я ввел неуместный термин "флаг" ? Можно вообще синхронизацию не делать пусть падает приложение... пользователь всегда сможет его еще раз запустить...
0
|
|||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||||
| 20.02.2014, 16:22 | ||||
|
0
|
||||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
||
| 20.02.2014, 16:31 | ||
|
2. Можно взять BYTE, и смотреть в нем 1 бит.
0
|
||
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
| 20.02.2014, 16:43 | |
|
В билдере есть. Это ведь форум билдера. Можно char сути это не меняет.
0
|
|
|
|
||||||||||||
| 20.02.2014, 17:02 | ||||||||||||
|
BYTE это скорее typedef какого нибудь плюсового типа, в XE3 это:
Но допустим проехали этот момент... возьмемся за другой ... Кто гарантирует что ваш char не оптимизируется компилятором и вы не получите "чудо-сюрприз" ? http://mainloop.ru/c-language/... atile.html Я к тому что ваши ручные методы не всегда соответствуют вашим ожиданиям, ну и знаниям в данном вопросе если говорить о теории. Если у вас куча времени на отладку программ и выяснение таких вещей на практике, что же это ваш выбор... Так спрашивается стоит ли так извращаться? или проще сразу отмести такой ручной вариант и использовать стандартные, предусмотренные для этого подходы? Добавлено через 6 минут Что касается флагов, то как пишут можно полагаться на атомарность:
0
|
||||||||||||
| 20.02.2014, 17:02 | |
|
Помогаю со студенческими работами здесь
30
Обмен данными между C++ Builder и Java компонентами socket-ов Обмен данными по сети интернет ServerSocket и ClientSocket обмен данными Обмен данными через COM порт Обмен данными через интернет Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|