увеличить thread_group с обратным вызовом - PullRequest
1 голос
/ 01 июля 2011

Я хотел бы написать boost :: thread_group. Предполагая, что я правильно понял, что такое обратный вызов в потоке, я бы хотел применить его и в моей программе.

Я нашел следующий пример: ( thread_group без обратного вызова )

 boost::thread_group group;
 for (int i = 0; i < 15; ++i)
      group.create_thread(aFunctionToExecute);
 group.join_all();

Если я хотел бы изменить его на обратный вызов, он просто добавит & до aFunctionToExecute?

Я подумал об использовании обратного вызова для следующего случая: при условии, что у меня 2 ядра, и цикл for составляет от 0 до 99 (100 элементов). Вместо того, чтобы открыть 100 потоков, я хотел бы открыть только 2 потока (количество ядер в этом примере), и после того, как каждый поток завершит вычисления с правильной переменной, он отправит что-то, что он сделал, и будет ждать выполнения заказа. снова, пока все 100 элементов не будут вычислены.

Кто-нибудь знает пример или несколько примеров, которые я мог бы объединить, создавая это?

, поскольку у меня нет опыта работы с потоками, я хотел бы знать, является ли этот способ применения group_threads "правильным" способом?

Reagrds

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...