Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > обработка дерева в нескольких тредах.


Автор: mrgloom 28.6.2011, 11:14
есть функция которая проходит по дереву и модифицирует данные в листе(много сортировок).
есть желание сделать это дело многопоточным. 
вообщем смысл там такой, что берутся данные из дочерних листов, выполняется преобразование и записывается в родительский лист.
вся обработка идет от корня, порядок важен, уровни дерева должны обрабатываться последовательно. 
т.е. как то так - основной поток идет по дереву и берет указатель на лист и передает рабочему потоку в котором все обрабатывается ,если поток занят то переходим к следующему потоку и т.д. но тут не очень понятно как организовать ожидание если все потоки заняты.
(либо надо изначально составить список листов и оттуда брать задания для тредов).

еще непонятно какие треды использовать вроде бы есть совсем голый winapi thread, но хотелось бы наверно какую то обертку, но и что то легкое чтобы не подключать тяжелые библиотеки. может в самой VS2008 что то есть?thread.h?pthread.h?


Автор: hawk3500 28.6.2011, 21:17
если все потоки заняты делайте Sleep ... чем не подходит?
И чем вам WIN API не нравиться?

Автор: azesmcar 29.6.2011, 10:25
смотри в сторону шаблона http://en.wikipedia.org/wiki/Thread_pool_pattern

Цитата(mrgloom @  28.6.2011,  11:14 Найти цитируемый пост)
но хотелось бы наверно какую то обертку, но и что то легкое чтобы не подключать тяжелые библиотеки. может в самой VS2008 что то есть?thread.h?pthread.h?

я бы посмотрел в сторону http://threadingbuildingblocks.org/. Не то, чтобы он совсем уж легковесный, но во всяком случае вещь надежная.

Добавлено через 2 минуты и 12 секунд
Цитата(hawk3500 @  28.6.2011,  21:17 Найти цитируемый пост)
И чем вам WIN API не нравиться? 

А чем он может нравиться? Тем, что дает возможность написать свой собственный, кривой и непереносимый велосипед?

Автор: hawk3500 29.6.2011, 20:22
ну на счёт непереносимого согласен,  а вот на счёт кривого...ну дык у кого какие руки так и выходит.

Автор: azesmcar 30.6.2011, 08:32
Цитата(hawk3500 @  29.6.2011,  20:22 Найти цитируемый пост)
а вот на счёт кривого...ну дык у кого какие руки так и выходит

Даже с прямыми руками, написание НЕ кривых оберток потребует довольно много времени. Зачем тогда писать, если в интернете полно бесплатных аналогов, к тому же переносимых? smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)