#include #include #include #include void* worker(void* arg) { static _Atomic int nb_threads = 0; int my_rank = nb_threads++; printf("Hello from thread %d\n", my_rank); return NULL; } int main(int argc, char** argv) { pthread_t tid[4]; for(int i = 0; i<4; i++) { pthread_create(&tid[i], NULL, worker, NULL); } for(int i = 0; i<4; i++) { pthread_join(tid[i], NULL); } return EXIT_SUCCESS; }