В вашем цикле for вы ожидаете завершения потока (t.join()
), поэтому одновременной сортировки нет.
for(int i = 0; i < pool.size(); i++){
thread t (bubbleSort, pool[i]);
t.join();
}
Вместо этого используйте detach()
, затем дождитесь всех потоков, прежде чемфункция возвращает (например, сохраняя потоки * в векторе, затем соединяя их все в цикле for).
Тем не менее, создание потока занимает время, и, следовательно, оно может быть не таким быстрым, как вы думаете, для быстрых операций.Если это для Windows, вы можете использовать мой Threadpool API класс, задокументированный здесь .