C11 agregó [soporte multihilos](https://en.cppreference.com/w/c/thread). Esto es una gran ventaja, dado que permite escribir código multihilo que funcione en todos los sistemas operativos sin tener que modificarlo, y no como ocurre con los Pthreads que están diseñados sólo para Unix. El siguiente ejemplo muestra la creación de un hilo secundario que saluda en la salida estándar.

```c
#include <stdio.h>
#include <stdlib.h>
#include <threads.h>

int greet(void* data) {
  (void)data;
  printf("Hello from secondary thread\n");
  return EXIT_SUCCESS;
}

int main(void) {
  thrd_t thread;
  thrd_create(&thread, greet, (void*)NULL);
  printf("Hello from main thread\n");
  thrd_join(thread, NULL);
  return EXIT_SUCCESS;
}
```

Los hilos estándar son muy similares a los Pthreads. Están definidos en el encabezado `<threads.h>` en lugar de `<pthread.h>`. El tipo de datos de un hilo es `thrd_t` en lugar de `pthread_t`. La creación de un hilo se hace con la función `thrd_create()` que recibe tres parámetros en lugar de los cuatro de `pthread_create()`: el hilo, la rutina, y los parámetros con que se invocará la rutina en el nuevo hilo.

En el ejemplo de arriba la rutina que se invoca en el hilo secundario es `greet()` que retorna un código de error `int`, al igual que `main()`, y no el puntero `void*` de Pthreads. Tanto la función `thrd_create()` como `thrd_join()` retornan un código de error entero, y la constante `thrd_success` equivale al código `0` de éxito.

El programa inicial en el archivo `solution.c` crea sólo un hilo secundario. Modifíquelo para que cree tantos hilos secundarios como se indique en la entrada estándar. Todos los hilos deben saludar con su número de hilo.

*Ejemplo de entrada*

    3


*Ejemplo de salida*

    Hello from main thread
    Hello from secondary thread 0
    Hello from secondary thread 1
    Hello from secondary thread 2

**Nota 1**: Es permitido que el orden de las líneas de salida sea diferente, debido al indeterminismo. El comando `make test` considera esta característica.

**Nota 2**: Recuerde hacer un *commit* al finalizar el problema, dado que estos son los que se usarán para calificar la tarea.
