[英]sem_wait() in producer and consumer
这是我的生产者和消费者问题的代码。 它可以编译,但是当我运行程序时它什么都不打印。 我测试程序,发现问题可能与sem_wait()有关。 为什么程序可以编译但输出错误? 谢谢。
int main(int argc, char *argv[]) {
pthread_mutex_init(&mutex, NULL);
empty = sem_open("/mysem", O_CREAT, 0644, BUFFER_SIZE);
full = sem_open("/mysem", O_CREAT, 0644, 0);
pthread_create(&pro_thread, NULL, producer, NULL);
pthread_create(&con_thread, NULL, consumer, NULL);
pthread_exit(NULL);
return 0;
}
sem_open()函数是对的吗? 我评论了以下行,程序可以运行...也许问题是关于sem_open?
empty = sem_open("/mysem", O_CREAT, 0644, BUFFER_SIZE);
看来你的制作人从未制作任何东西
检查信号量名称。 可能是empty
和full
是相同的实例为你使用相同的名称都在你的sem_open
功能
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.