Логика работы многопоточности |
Здравствуйте, гость ( Вход | Регистрация )
Логика работы многопоточности |
RazrFalcon |
7.12.2010, 14:23
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Пример:
Раскрывающийся текст
Одним словом у меня есть цикл в котором я должен передавать разные значение в потоки и получать обратно результат обработки функции match. Лучше описать не могу, так как не совсем понимаю как должна выглядеть программа такая. |
|
|
Sokoloff |
7.12.2010, 15:28
Сообщение
#2
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
Пример: Одним словом у меня есть цикл в котором я должен передавать разные значение в потоки и получать обратно результат обработки функции match. Лучше описать не могу, так как не совсем понимаю как должна выглядеть программа такая. Из твоего объяснения ничего не понятно. Почитай это может подойдет. |
|
|
Iron Bug |
7.12.2010, 15:34
Сообщение
#3
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Лучше описать не могу, так как не совсем понимаю как должна выглядеть программа такая. а в чём, собственно, проблема-то? у тебя какая-то сентенция по поводу того, что ты не знаешь, вышла. ты пробовал для начала выписать условия задачи, с формализацией? в конце концов, представь, что это не задачи, а картошка и есть два человека, которые её должны почистить. вроде никакой особой алгоритмической сложности в такой задаче нет |
|
|
RazrFalcon |
7.12.2010, 15:55
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
В этом и проблема, я не могу понять логику работы.
Проблема в том, что мне нужно передать значения в функцию которая в потоке находится. И еще, если у меня потоки создаются изначально, то там что должны бить просто while постоянно? У меня есть цикл основной, в нем циклично посылаться должны значения двум потокам. Пример: Есть 20 изображений, 10 изначальных и 10 измененных. У меня есть цикл который сравнивает эти изображения. То есть берем 1-е изначальное и сравниваем с 10 измененными, и находим нужное. Потом второе исходное снова с 10 сравниваем и тд. Я хочу распараллелить (так как долго обрабатываются изображения), к примеру четные исходные первый поток обрабатывает, а нечетные второй. Ну или первые 5-ть - первый, остальные пять - второй. Сообщение отредактировал RazrFalcon - 7.12.2010, 15:56 |
|
|
Алексей1153 |
7.12.2010, 22:13
Сообщение
#5
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
RazrFalcon, если сравнений нужно производить больше, чем у тебя ядер процессора, то распараллеливать тут нечего - будет только медленнее. Сравнивай в одном отдельном потоке по очереди
то ли дело, если бы было 4 ядра и одно сравнение: 1 ядро - главный поток, 3 потока в 3 ядрах: каждый свою треть картинки шмонает. Вот тогда выгода в скорости налицо |
|
|
RazrFalcon |
7.12.2010, 22:43
Сообщение
#6
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Ну так, у меня 2-а ядра. Каждое свою половину сравнивает. Как тут производительность ухудшится?
PS жду ваше 1000-е сообщение |
|
|
Алексей1153 |
8.12.2010, 19:38
Сообщение
#7
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Цитата к примеру четные исходные первый поток обрабатывает, а нечетные второй где тут про половину изображдения то ? )) Нету про половину. Говоришь про целые картинки же |
|
|
RazrFalcon |
8.12.2010, 19:54
Сообщение
#8
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Я имел в виду половину изображениЙ (пол. количества общего)
Ну а логику в принципе понял. То есть если у меня 2-а ядра, а создаю 3-и потока, 1-й основной, который посылает 2-м обрабатывающим задания, то это только ухудшит производительность. Я так понимаю лучше всего это один(главный) управляющий и второй обрабатывающий? |
|
|
Алексей1153 |
8.12.2010, 20:18
Сообщение
#9
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
ну, если во время вычислений основной поток ленится, то, для красоты/удобства, вполне можно запустить два одинаковых бурных потока. Главное, чтобы они делали воистину распараллеливание, а не последовательное решение задачи, с которой и один поток бы справился, да ещё и побыстрее бы это сделал
|
|
|
Litkevich Yuriy |
8.12.2010, 20:19
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 22.12.2024, 8:43 |