main.c 920 Bytes
#include <stdio.h>
#include <pthread.h>

struct deux_int {
    int a;
    int b;
};

void *print_hello(void *arg){
    (void) arg; // ici on utilise pas l'argument
    printf("Hello\n");
    pthread_exit(NULL);
}

void *print_nombre(void *arg){
    struct deux_int ints = *(struct deux_int *) arg; // void* -> struct deux_int* -> struct deux_int
    printf("Les nombres sont :%d: et :%d:\n", ints.a, ints.b);
    pthread_exit(NULL);
}

int main(void){
    pthread_t tid1, tid2;
    // thread 1
    pthread_create(&tid1, NULL, print_hello, NULL);
    pthread_detach(tid1);

    //thread 2
    struct deux_int ints;
    ints.a = 15;
    ints.b = 7;
    pthread_create(&tid2, NULL, print_nombre, (void *) &ints); // struct deux_int -> struct deux_int* -> void*
    pthread_detach(tid2);

    printf("Je peux terminer le thread principal sans avoir à attendre les deux autre en mode détaché\n");
    pthread_exit(NULL);
}