Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Threads en C

Estas en el tema de Threads en C en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 18/05/2015, 12:33
 
Fecha de Ingreso: mayo-2015
Mensajes: 1
Antigüedad: 8 años, 11 meses
Puntos: 0
Threads en C

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

Etiquetas: char, funcion, int, programa, struct, threads
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:35.