繁体   English   中英

生产者和消费者中的sem_wait()

[英]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);

看来你的制作人从未制作任何东西

检查信号量名称。 可能是emptyfull是相同的实例为你使用相同的名称都在你的sem_open功能

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM