lo que veo es que solo creas 2 hilos,
otra cosa, te puedes ahorrar un par de lineas si haces esto:
Código C:
Ver originalif (pthread_create(&a_thread, NULL, thread_function,NULL)) {
printf("Thread creation failed"); return -1;
}
if (pthread_create(&b_thread, NULL, thread_function,NULL)) {
printf("Thread creation failed"); return -1;
}
y en vez de
Código C:
Ver originalres = pthread_join(a_thread, &thread_result);
// Esperar a que terminen los hilos
if (res != 0)
{
perror("La unión del hilo ha fallado"); }
res = pthread_join(b_thread, &thread_result);
if (res != 0)
{
perror("La unión del hilo ha fallado"); }
pon
Código C:
Ver originalpthread_join(a_thread,NULL);
pthread_join(b_thread,NULL);
Y pues si le agregas mas hilos es natural que aumente el tiempo, ya que los hilos no se ejecutan exactamente paralelamente.