现在我实现了我的障碍。但效果不佳。
当我运行障碍时间计算代码 pthread_barrier_wait 消耗 180000 我们我的障碍消耗 390000 我们
我不知道为什么,我想做更快的屏障
这是我的屏障代码
82 pthread_mutex_t mutexwait1;
83 int wait_count = NUM_THREADS;
84 int barrier1234(void) {
85
86 int status, cancel, tmp;
87 status = pthread_mutex_lock(&mutexwait1);
88 wait_count = wait_count - 1;
89 if(wait_count == 0){
90 pthread_cond_broadcast(&cond1);
91 wait_count = NUM_THREADS ;
92 }
93 else
94 status = pthread_cond_wait(&cond1, &mutexwait1);
95
96 pthread_mutex_unlock(&mutexwait1);
97 return status;
98
99 }
我找到了一些 barrier_wait 函数,但它没有用。(从 glibc 下载)=> 编译障碍时出现错误消息(结构变量不匹配)=> 我想知道这个错误是由版本引起的
我正在使用 ubuntu 10.04 请教我为什么我的屏障很慢。以及如何实现默认 pthread_barrier_wait (在我的平台上)