1#include <stdio.h>2#include <pthread.h>3#include <unistd.h>4 5 intnum =0;6pthread_mutex_t Mutex_lock =Pthread_mutex_initializer;7pthread_cond_t Cond_ready =Pthread_cond_initializer;8 9 Ten void*output_chara (void*Arg) One { A inti; - intCond_num = (int) arg; - the for(i =0; I <Ten; i++){ -Pthread_mutex_lock (&mutex_lock); - while(num! =cond_num) { -Pthread_cond_wait (&cond_ready, &mutex_lock); + } - +printf"%c",'A'+cond_num); A atnum = (num +1) %3; - -Pthread_mutex_unlock (&mutex_lock); -Pthread_cond_broadcast (&cond_ready); - } - } in - intMain () to { + inti; -pthread_t tid[3]; the * for(i =0; I <3; i++){ $Pthread_create (&tid[i], NULL, Output_chara, (void*) (i);Panax Notoginseng } - the for(i =0; I <3; i++){ + Pthread_join (Tid[i], NULL); A } the + return 0; -}
Output
Abcabcabcabcabcabcabcabcabcabc
Multithreading prints characters in thread order