マルチスレッドのプログラミング

pthread_barrier_init() の構文

int pthread_barrier_init(pthread_barrier_t  *barrier, 
          const pthread_barrierattr_t *restrict attr, 
          unsigned count);
#include <pthread.h> 
pthread_barrier_t barrier; 
pthread_barrierattr_t attr;
unsigned count;
int ret; 
ret = pthread_barrier_init(&barrier, &attr, count);

pthread_barrier_init() 関数は、barrier が参照するバリアーを使用するために必要なすべてのリソースを割り当て、attr が参照する属性でバリアーを初期化します。attr が NULL の場合は、デフォルトのバリアー属性が使用されます。この場合の結果は、デフォルトのバリアー属性オブジェクトのアドレスを渡す場合と同じです。count 引数には、pthread_barrier_wait() を呼び出す必要のあるスレッドの数を指定します。それまでは、どのスレッドも呼び出しから正常に復帰できません。count で指定する値は 1 以上にする必要があります。