![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| CaHko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.12.2008 Репутация: нет Всего: нет |
Была задача реализовать параллельное выполнение маленьких подзадачач,на примере qsort
моя версия такая
Но как грамотно убить много потоков,чтобы не писать sleep'ы? и я не совсем понял как работают функции treadfunc и т.д,как мне привязать к invoke qsort? Надеюсь на помощь |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 8 Всего: 154 |
WaitForMultipleObjects, в качестве параметра передаешь массив хэндлов потоков и WaitAll = TRUE, функция заблокирует поток до тех пор, пока все потоки не завершатся
Добавлено через 2 минуты и 45 секунд WaitForMultipleObjects, в качестве параметра передаешь массив хэндлов потоков и WaitAll = TRUE, функция заблокирует поток до тех пор, пока все потоки не завершатся |
|||
|
||||
| CaHko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.12.2008 Репутация: нет Всего: нет |
Это я понял. А кто может объяснить как qsort привязать?
|
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 8 Всего: 154 |
что значит привязать?
если имеется ввиду распараллелить, то, поскольку алгоритм quicsort построен по принципу разделяй и властвуй, то есть сначала задача делится на маленькие части, а потом их результаты соединяются, то логично использовать алгоритм reduce, а его легко распараллелить. Можно посмотреть как это делается в библиотеке threading building blocks, там есть шаблон parallel_reduce(pdf) |
|||
|
||||
| CaHko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.12.2008 Репутация: нет Всего: нет |
Привязать: Та прога которую я привел в начале,и должна была эффективно решать задачу(т.е с использованием много поточности) на примере qsort,но как это привязать к ней qsort я не понял,поэтому просто дописал прогу,чтобы она работала.
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Для начала, ты должен переделать qsort, что бы она не вызывала себя рекурсивно, а рождала потоки |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |