![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Iron Bug |
![]()
Сообщение
#51
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
у меня такое ощущение, что ты совершенно не понимаешь сути параллельной обработки данных.
не поленись, сядь и нарисуй картинку: как всё должно работать, схематически изобрази связи и вызовы и что за чем идёт, стрелками. и потом составь алгоритм обработки, подробно, на бумажке. и только после этого садись писать код. а то ты городишь непонятно что и понятно, что оно не работает. потому что там принципиальные ошибки, даже не программистские, а чисто алгоритмические. |
|
|
RazrFalcon |
![]()
Сообщение
#52
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
PAFOS |
![]()
Сообщение
#53
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
Вклинюсь в дискуссию)
В свое время много-много убил времени на понимание потоков и как Qt с ними обращается)) Для достижения максимальной производительности необходимо создавать столько потоков, сколько физически одновременно может обработать проц. Для двухядерников идеальным будет два потока, для четырех - четыре. Еще момент, на создание самого потока у системы уходит уйма времени, поэтому не стоит убивать поток сразу после того как он обработал кадр. После обработки кадра, поток должен ждать , когда ему сунут новый кадр для обработки. При таком ожидании лучше всего использовать условные переменные. Условные переменные - разновидность объекта для синхронизации потоков. Вот код, отображающий все вышеперечисленные моменты) в коде я предполагаю, что есть класс Frame, который инкапсулирует такую сущность как кадр с камеры. класс Frame имеет член - int number, который указывает его порядковый номер )
Вероятно многое может показаться непонятным, но я постараюсь ответить на них ) |
|
|
RazrFalcon |
![]()
Сообщение
#54
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Большое спасибо. Очень понятный код. Буду разбираться.
У вас опечатка: QWaitCondition processingFinished Еще бы инклуды написали, было бы вообще супер =) Сообщение отредактировал RazrFalcon - 11.1.2011, 22:59 |
|
|
PAFOS |
![]()
Сообщение
#55
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
Большое спасибо. Очень понятный код. Буду разбираться. У вас опечатка: QWaitCondition processingFinished Еще бы инклуды написали, было бы вообще супер =) Извиняюсь за опечатки, я писал за 20 минут до завершения последнего рабочего дня ушедшего года)) Этот код лишь как пример, не стоит слепо следовать ему ) |
|
|
RazrFalcon |
![]()
Сообщение
#56
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Что мои шаги в многопоточности оооочень медленные.
Может кто нибудь написать мааааленький пример?! В котором будет открываться 10 изображений и поворачиватбся (по 5-ть в потоке), а потом по очереди выводится на форме. Коментарии к коду выше: Constructor c; - что это? |
|
|
igor_bogomolov |
![]()
Сообщение
#57
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
RazrFalcon |
![]()
Сообщение
#58
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
ЭЭ... Возможно.
Но мне бы пример... ![]() |
|
|
Iron Bug |
![]()
Сообщение
#59
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
Может кто нибудь написать мааааленький пример?! В котором будет открываться 10 изображений и поворачиватбся (по 5-ть в потоке), а потом по очереди выводится на форме. это уже не "мааааленький пример", а вполне себе функциональная утилитка. ты выбери: либо ты хочет стать программистом и тебе нужно много и долго учиться, либо ты работаешь где угодно, платишь деньги и тебе пишут софт другие люди, которым не лень изучать языки и системы. |
|
|
RazrFalcon |
![]()
Сообщение
#60
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Мне 19 лет
![]() И я совершенно точно нигде не работаю. А теме уже 3-и месяца, и все это время я пытаюсь с потоками разобраться. Фактически, сейчас у меня проблема только в том что я не понимаю как не дать главному потоку убивать второстепенные до окончания их работы. Вот если второй поток работает меньше главного (aka main) то все работает отлично. Вот и все проблема. А пример нежен для наглядности. В мои планы входит изучение языка, в не воровство чужой интеллектуальной собственности. ![]() |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 6.2.2025, 3:08 |