J'ai une application de streaming vidéo haute performance (614400) et de haute performance (100fps, 10ms pour 1 frame). Dans 1 frame je dois modifier mon cadre, et utilisé pour ce 8 threads. Ce qui est plus rapide: 1. accéder à tous les éléments du fil 1 par 1, e. g. Thread1 (1,2,3, ... n) Thread2 (n + 1, n + 2, ... n * 2) ... 2. éléments d'accès dans l'ordre suivant: Thread1 (1,9 , 17 ...) Thread2 (2, 10, 18) ... quelle voie peut être plus rapide? maintenant j'ai la deuxième méthode:Performances C++ dans un grand réseau
workers = new std::thread*[workersCount];
for (int j = 0; j < workersCount; j++){
workers[j] = new std::thread(¶meterController::extractPart, this, j*2, workersCount*2);
}
for (int j = 0; j < workersCount; j++){
workers[j]->join();
delete workers[j];
}
delete workers;
Je soupçonne que * mesurer * répondra à votre question de quoi, si quelque chose, est plus rapide. – WhozCraig
Créez-vous et détruisez-vous des threads pour chaque image? o.O – nakiya
Je sais, c'est une mauvaise façon, mais maintenant aucune idée de la façon de mettre en œuvre cela. Maintenant, je cherche les threads infini init 8 dans le constructeur, qui attendent une nouvelle image. Une idée, comment attraper, que les threads attendent un nouveau cadre? parce qu'après cela, je dois faire plus avec ces données. – Nick