三个线程每个线程输出一个字符
Posted susidian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三个线程每个线程输出一个字符相关的知识,希望对你有一定的参考价值。
#include<stdio.h> #include<unistd.h> #include<pthread.h> #define NUM 3 int n=0; pthread_mutex_t t_mutex; pthread_cond_t t_cond; void *Execute(void *p) { int i=0; int para = (int)p; for(;i<10;i++) { pthread_mutex_lock(&t_mutex); while(para!= n) pthread_cond_wait(&t_cond,&t_mutex); printf("%c ",para +‘A‘); n = (n+1)%NUM; pthread_cond_broadcast(&t_cond); pthread_mutex_unlock(&t_mutex); } return (void *)0; } int main() { int i=0; pthread_t thread[NUM]; for(;i<NUM;i++) { int ret = pthread_create(&thread[i],NULL,Execute,(void * )i); if(ret != 0) { printf("create pthread failed "); break; } } for(i=0;i<NUM;i++) { pthread_join(thread[i],NULL); } printf(" main thread finished "); }
以上是关于三个线程每个线程输出一个字符的主要内容,如果未能解决你的问题,请参考以下文章