Hola tengo que realizar un programa que simule un carrerra de coches en la que
La carrera realizada por cada coche se simulará mediante la creación de un hilo que
ejecuta una funcion genérica (funcion_coches())Esta función simula la salida del coche de la
parrilla de salida y su llegada a la meta mediante sendos mensajes que se mostrarán en pantalla.
Para modelar la diferente evolución de cada coche en la carrera, se introduce un retardo aleatorio
en la finalización de la ejecución de la función.
La función asociada a los hilos recibe una estructura como argumento. Esta estructura está
formada por una cadena arbitraria y un entero (comprendido entre 0 y n_coches-1). Ambos datos
son utilizados conjuntamente durante la simulación para identificar cada coche.
1 # include <pthread .h>
2 # include <stdio .h>
3 # include <stdlib .h>
4 # include <string .h>
5 # define n_coches 8
67
// Array para los identificadores de los hilos
8 pthread_t tabla_hilos [ n_coches ];
9
10 // Tipo de datos hilos_param
11 typedef struct {
12 int id;
13 char * cadena ;
14 } hilos_param ;
15
16 // Array de datos de tipo hilos_param
17 hilos_param parametros [ n_coches ];
18
19 // Funcion ejecutada por los hilos
20 void * funcion_coches ( hilos_param *p)
21 {
22 int aleatorio ;
23 printf (" Salida %s %d\n", p-> cadena , p->id );
24
25 fflush ( stdout );
26 aleatorio = rand ();
27 sleep (1 + ( aleatorio %4));
28
29 printf (" Llegada %s %d\n", p-> cadena , p->id );
30
31
32 /* CODIGO 2 */
33
34
35 }
36
37 int main ( void )
38 {
39 int i, * res;
40
41 printf (" Inicio proceso de creacion de los hilos ...\ n");
42
43 // Se procede a crear los hilos
44
45 for (i =0; i< n_coches ; i ++)
46 {
47
48 /* CODIGO 1 */
49
50 }
51
52 printf (" Proceso de creacion de hilos terminado \n");
53 printf (" SALIDA DE COCHES \n");
54
55
56
57 for (i =0; i< n_coches ; i ++)
58 {
59
60 /* CODIGO 3 */
61
62 }
63
64 printf (" Todos los coches han LLEGADO A LA META \n");
65 return 0;
66 }
Soy muy novato en esto si me pudierais guiar como empezar y que tengo que usar , me ayudarías mucho
Gracias