Ich habe eine tbb::task_scheduler_init
Instanz , die mit einer bestimmten Anzahl von Threads in einem Teil des Codes initialisiert wird, die ich nicht habe, in späteren Teilen des Codes möchte ich mit einer anderen Anzahl von Threads ausführen. Wie kann ich es über diese Instanz init
?TBB: Wie man unterschiedliche Anzahl von Fäden in verschiedenen Teilen des Codes setzt?
Gibt es einen besseren Weg als das folgende?
init.terminate();
init.initialize(my_preferred_number_of_threads);
/*
run some code
*/
init.terminate();
init.initialize(original_number_of_threads); // restore the original tbb scheduler
Die bevorzugte Verwendung von TBB ist nicht die Anzahl der Threads überall zu setzen und stattdessen konzentrieren sich auf grainsizes im rechten Baseballstadion bekommen. Das Festlegen der Anzahl der Threads (wie dieses Beispiel zeigt) führt häufig zu Problemen mit der Zusammensetzung. Aber wenn Sie mit der Situation, die Sie beschreiben, feststecken, scheint Ihre Herangehensweise vernünftig. –