2012-04-09 1 views
2

puis-je utiliser parallel_invoke pour exécuter la même fonction plusieurs foisparallel_invoke même méthode dans TBB

comme je l'ai fonction scan qui traversent une chaîne puis-je faire les mêmes tâches multiples fonctionnent sur elle.

+0

Peut-être que vous pourriez ajouter un pseudo code décrivant ce que vous voulez faire? – ronag

Répondre

0

Oui, vous pouvez.

vous pouvez également utiliser un task_group:

tbb::task_group g; 
g.run(foo); 
g.run(foo); 

g.wait(); 

Si vous voulez exécuter aussi souvent que vous avez CPU-cores, vous pouvez le faire comme ceci:

tbb::task_group g; 

for(auto i = 0; i != tbb::tbb_thread::hardware_concurrency(); ++i) { 
    g.run(foo); 
} 

g.wait(); 
+0

est-il un autre moyen de les faire fonctionner en fonction du nombre de cœurs que j'ai – aTm

+0

@atm Voir mon edit. – inf

+0

Je veux demander vous avez besoin de #include aTm

0

Oui, rien vous arrêtera, mais vous êtes responsable de déterminer si ces actions entraîneront des conditions de concurrence ou des problèmes de concurrence qui feront exploser votre programme.

Questions connexes