编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。

    xiaoxiao2021-12-14  19

    #include <stdio.h> #include <pthread.h> #include <unistd.h> #include <errno.h> int ticket = 30; void *thread1(void) { while(1) { if(ticket > 0) { //sleep(1); printf("A"); ticket--; sleep(1); } else { break; } } return NULL; } void *thread2(void) { while(1) { if(ticket > 0) { //sleep(1); printf("B"); ticket--; sleep(1); } else { break; } } return NULL; } void *thread3(void) { while(1) { if(ticket > 0) { //sleep(1); printf("C"); ticket--; sleep(1); } else { break; } } return NULL; } int main() { int i=0, ret=0; pthread_t id1,id2,id3; ret = pthread_create(&id1, NULL, (void*)thread1, NULL); ret = pthread_create(&id2, NULL, (void*)thread2, NULL); ret = pthread_create(&id3, NULL, (void*)thread3, NULL); pthread_join(id1, NULL); //printf("id1 exit!\n"); pthread_join(id2, NULL); //printf("id2 exit!\n"); pthread_join(id3, NULL); //printf("id3 exit!\n"); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-971677.html

    最新回复(0)