簡體   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