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

pthread_condattr_setpshared の構文

int pthread_condattr_setpshared(pthread_condattr_t *cattr, int pshared);
#include <pthread.h> 
pthread_condattr_t cattr; 
int ret; 

/* all processes */ 
ret = pthread_condattr_setpshared(&cattr, PTHREAD_PROCESS_SHARED); 

/* within a process */ 
ret = pthread_condattr_setpshared(&cattr, PTHREAD_PROCESS_PRIVATE);

共有メモリー内に pshared 属性を生成し、その条件変数を PTHREAD_PROCESS_SHARED に設定した場合、この条件変数は複数のプロセスのスレッド間で共有できます。

mutex の pshared 属性を PTHREAD_PROCESS_PRIVATE に設定した場合、その mutex を操作できるのは同じプロセスで生成されたスレッドだけです。PTHREAD_PROCESS_PRIVATE はデフォルト値です。PTHREAD_PROCESS_PRIVATE は、局所条件変数として動作します。PTHREAD_PROCESS_SHARED の動作は、大域条件変数に相当します。