Blame view

Threads/Exemples/Detach/main.c 735 Bytes
0ae69087   pfrison   Ajout des fichiers
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  #include <stdio.h>
  #include <pthread.h>
  
  void *print_hello(void *arg){
      (void) arg; // ici on utilise pas l'argument
      printf("Hello\n");
      pthread_exit(NULL);
  }
  
  void *print_nombre(void *arg){
      int n = *(int *) arg; // void* -> int* -> int
      printf("Le nombre est :%d:\n", n);
      pthread_exit(NULL);
  }
  
  int main(void){
      pthread_t tid1, tid2;
      // thread 1
      pthread_create(&tid1, NULL, print_hello, NULL);
      pthread_detach(tid1);
  
      //thread 2
      int arg = 15;
      pthread_create(&tid2, NULL, print_nombre, (void *) &arg); // int -> 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);
  }