Red de conocimiento informático - Conocimientos de programación - Programación del nivel mta

Programación del nivel mta

¿Los tres hilos usan la misma información?

¿Código información_t* información? =(Info _ t *)malloc(sizeof(Info _ t));Solo se crea un mensaje.

pthread_create(& threads[i], NULL, calMatrix, (void *)info tres hilos usan el mismo

Cambié tu código:

#¿Contiene? ltstdio.h gt

#¿Contiene? ltstdlib.h gt

#¿Incluir? ltpthread.h gt

int? mtc[3]? =?{?0?};? //?¿resultado? matriz

typedef? Estructura

{

int? Broma;

int? *mta?

int? *Bicicleta de montaña;

} Info_t;

¿nulo*? calMatrix(void*?arg)

{

int? Yo;

¿Info_t? *¿información? =?(Info_t?*)arg;

int? ¿Travesura? =?info-gt;broma;

fprintf(stdout, "calMatrix?:?¿broma? Sí?d\n",broma);

Para (yo? =? 0 ;? yo? 3;? yo )

mtc? =?info-gt;mta[i]? *?Información - gt;MTB[I];

¿Volver? NULL

}

int? main(int? argc, char? **argv)

{

int? Yo,j,k? =?0;

int? MTA[3][3];

int? mtb[3]? =?{?1?};

Info_t? *¿información? =?(Info_t?*)malloc(sizeof(Info_t)* 3);

Para (i?=?0;?i?lt?3;?i)

Para (j?=?0;?j?lt?3;?j)

mta[i][j]? =?k;

/*?3?Hilo? */

pthread_t? *¿Hilo? =?(pthread_t?*)malloc(sizeof(pthread_t)* 3);

fprintf(stdout, "\n"); fflush(stdout);

Para (i? =?0;?lt?i)

Información[i]. ¿Travesura? =?I;

Información[i]. ¿mta? =?MTA[I];

Información[i].

¿Bicicleta de montaña? =?Bicicleta de montaña;

pthread_create(amp; threads[i], NULL, calMatrix, (void?*)(amp; info[I]));

}

For (i?=?0;?i?lt?3;?i)

pthread_join(threads[i], NULL);

fprintf (stdout , " \n====? ¿Eso? ¿Matriz? ¿Resultado? = = = = \n \n "

fflush(stdout

For (i ? = ? 0; ? yo )

{

fprintf(salida estándar, [I]);

fflush(salida estándar);

}

¿Volver? 0;

}Olvidé los cálculos matriciales. Ejecútelo y vea si los resultados son correctos.