Thread druckt nicht in der richtigen Reihenfolge aus

Ich bin ziemlich neu in Threads in C. Für dieses Programm muss ich einen Thread deklarieren, den ich in einer for-Schleife übergebe, die die printfs aus dem Thread drucken soll.

Ich kann es scheinbar nicht in der richtigen Reihenfolge zum Drucken bringen. Hier ist mein Code:

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#define NUM_THREADS 16

void *thread(void *thread_id) {
    int id = *((int *) thread_id);
    printf("Hello from thread %d\n", id);
    return NULL;
}

int main() {
    pthread_t threads[NUM_THREADS];
    for (int i = 0; i < NUM_THREADS; i++) {
        int code = pthread_create(&threads[i], NULL, thread, &i);

        if (code != 0) {
            fprintf(stderr, "pthread_create failed!\n");
            return EXIT_FAILURE;
        }
    }
    return EXIT_SUCCESS;
}

//gcc -o main main.c -lpthread

Antworten auf die Frage(2)

Ihre Antwort auf die Frage