使用多线程交替打印ABC十次

编程入门 行业动态 更新时间:2024-10-26 15:19:16

使用<a href=https://www.elefans.com/category/jswz/34/1767532.html style=多线程交替打印ABC十次"/>

使用多线程交替打印ABC十次

这道题在我面试的时候被问到过。

  1 #include<stdio.h>2 #include<stdlib.h>3 #include<pthread.h>4 #include<string.h>5 #include<unistd.h>6 #define DEBUG 17 int num=0;8 pthread_mutex_t mylock = PTHREAD_MUTEX_INITIALIZER;9 pthread_cond_t ready=PTHREAD_COND_INITIALIZER;10 11 void* thread_func(void* arg)12 {13     int param=(int)arg;14     int i;15     for(i=0;i<10;i++){16         pthread_mutex_lock(&mylock);17         while(param!=num){18          pthread_cond_wait(&ready,&mylock);19         }20         printf("%c",param+'A');21         num=(num+1)%3;22         pthread_mutex_unlock(&mylock);23         pthread_cond_broadcast(&ready);24     }25     return (void*)0;26 }27 int main()28 {29     int i;30     pthread_t tid[3];31     void* tmp;32     for(i=0;i<3;i++)33       pthread_create(&tid[i],NULL,thread_func,(void*)i);34     for(i=0;i<3;i++)35       pthread_join(tid[i],&tmp);36     return 0;37 }

使用锁可以实现该功能。

更多推荐

使用多线程交替打印ABC十次

本文发布于:2024-02-25 11:43:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1698865.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多线程   ABC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!