#include #include #include #define SIZE 32768 pthread_t child_thread; pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; int table[SIZE]; int cmp(const void* a1, const void* a2){ return *((int*)a2) - *((int*)a1); } void* child(void* args){ pthread_mutex_lock(&mutex); for (int i = 0; i < SIZE; ++i) { table[i] = rand(); } pthread_mutex_unlock(&mutex); sleep(1); pthread_mutex_lock(&mutex); return NULL; } int main(void) { pthread_create(&child_thread, NULL, child, NULL); pthread_mutex_lock(&mutex); qsort(table, SIZE, sizeof(int), cmp); pthread_mutex_unlock(&mutex); }