多线程中不变量和谓语的概念区别


在多线程编程中,常涉及到的两个术语:不变量,谓语。

书籍中对这两个术语的解释真TM抽象啊…………

我想听听高手们来自民间的解释,希望能看到一针见血的答案!

多线程 C++

此花露琪亚 11 years, 4 months ago

我自己找了代码片段来区别这两个概念:

   
  ......
  
while(stage->data_ready)
{
status = pthread_cond_wait(&stage->ready, &stage->mutex); //阻塞
if(status != 0)
{
pthread_mutex_unlock(&stage->mutex);
return status;
}
}

stage->data = data; //不变量

status = pthread_cond_signal(&stage->avail);
.....

其中“stage->data_ready”就是谓语,“stage->data” 就是不变量,

ORZ天命 answered 11 years, 4 months ago

Your Answer