#include <stdio.h>
#include <pthread.h>
#define THREADS 4
void* print_message(void* arg) {
int id = *(int*)arg;
printf("Thread %d is running\n", id
); return NULL;
}
int main() {
pthread_t threads[THREADS];
int ids[THREADS];
for(int i = 0; i < THREADS; i++) {
ids[i] = i + 1;
pthread_create(&threads[i], NULL, print_message, &ids[i]);
}
for(int i = 0; i < THREADS; i++) {
pthread_join(threads[i], NULL);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxwdGhyZWFkLmg+CgojZGVmaW5lIFRIUkVBRFMgNAoKdm9pZCogcHJpbnRfbWVzc2FnZSh2b2lkKiBhcmcpIHsKICAgIGludCBpZCA9ICooaW50Kilhcmc7CiAgICBwcmludGYoIlRocmVhZCAlZCBpcyBydW5uaW5nXG4iLCBpZCk7CiAgICByZXR1cm4gTlVMTDsKfQoKaW50IG1haW4oKSB7CiAgICBwdGhyZWFkX3QgdGhyZWFkc1tUSFJFQURTXTsKICAgIGludCBpZHNbVEhSRUFEU107CgogICAgZm9yKGludCBpID0gMDsgaSA8IFRIUkVBRFM7IGkrKykgewogICAgICAgIGlkc1tpXSA9IGkgKyAxOwogICAgICAgIHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWRzW2ldLCBOVUxMLCBwcmludF9tZXNzYWdlLCAmaWRzW2ldKTsKICAgIH0KCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgVEhSRUFEUzsgaSsrKSB7CiAgICAgICAgcHRocmVhZF9qb2luKHRocmVhZHNbaV0sIE5VTEwpOwogICAgfQoKICAgIHJldHVybiAwOwp9