у меня есть этот следующий код:производительность потоков в C++
for (int i = 0 ; i < 100 ; i++)
for (int j = 0 ; j < 80 ; j ++)
{
...
}
я расщепляется его 8 потоков.
pthread_t thread1, thread2,thread3,thread4,thread5,thread6,thread7,thread8;
int rc1,rc2,rc3,rc4,rc5,rc6,rc7,rc8;
struct threads
{
...
}
void *PrintHello(void *args)
{
for (int j = 0 ; j < 10 ; j ++)
{
}
}
for (int i = 0 i < 100 ; i ++)
{
rc1 = pthread_create(&thread1, NULL,PrintHello,threads);,
pthread_join(thread1,NULL);
rc2 = pthread_create(&thread1, NULL,PrintHello,threads);
pthread_join(thread2,NULL);
rc3 = pthread_create(&thread1, NULL,PrintHello,threads);
pthread_join(thread3,NULL);
rc4 = pthread_create(&thread1, NULL,PrintHello,threads);
pthread_join(thread4,NULL);
rc5 = pthread_create(&thread1, NULL,PrintHello,threads);
pthread_join(thread5,NULL);
rc6 = pthread_create(&thread1, NULL,PrintHello,threads);
pthread_join(thread6,NULL);
rc7 = pthread_create(&thread1, NULL,PrintHello,threads);
pthread_join(thread7,NULL);
rc8 = pthread_create(&thread1, NULL,PrintHello,threads);
pthread_join(thread8,NULL);
}
я думаю, второй один должен быть быстрее, чем сначала один .Но, второй один ведет себя как что есть только один thread.In Другими словами, код, который не расщепляется и код, который расщепляется пробег в то же время. Почему у них одинаковое время работы, а во втором - 8 потоков, у первого есть один поток?
Заранее благодарим.
Что вы хотите сказать? Кроме того, какая платформа? –
Извините, не обновлено вопрос – ort23
Ваша функция «PrintHello» настолько тривиальна, что использование ее для синхронизации потоков не даст вам каких-либо значимых результатов. Накладные расходы по настройке и разрыву нитей намного более значительны для сравнения. – Chad