pthread_mutex_t mutex; pthread_cond_t print; int printId = 0; void *func(void *arg) {     int *id = (int*)arg;     for (int i = 0; i < 5; ++i)     {         pthread_mutex_lock(&mutex);         while (*id != printId)             pthread_cond_wait(&print, &mutex);         cout << *id + 1 << " : ";         for (int j = 1; j <= 5; ++j)             cout << i*15 + j + (*id)*5 << " ";         cout << endl;         printId = (printId+1) % 3;         pthread_cond_broadcast(&print);         pthread_mutex_unlock(&mutex);     }     return NULL; } int main() {     pthread_t pid[3];     for (int i = 0; i < 3; ++i)  pid[i] = i;     pthread_mutex_init(&mutex, NULL);     pthread_cond_init(&print, NULL);     int id[3];     for (int i = 0; i < 3; ++i) id[i] = i;     for (int i = 0; i < 3; ++i)         pthread_create(&pid[i], NULL, func, (void*)(&id[i]));     for (int i = 0; i < 3; ++i)         pthread_join(pid[i], NULL);     pthread_cond_destroy(&print);     pthread_mutex_destroy(&mutex);     return 0; } 来个 C 语言的
点赞 评论

相关推荐

不愿透露姓名的神秘牛友
03-30 21:35
爱蜜莉雅碳劝退测开:裁员裁大动脉了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务