semaphore.c

来自「线程中使用Semaphore的例子」· C语言 代码 · 共 43 行

C
43
字号
  void reader_function(void);  void writer_function(void);    char buffer;  Semaphore writers_turn;  Semaphore readers_turn;    main()  {     pthread_t reader;       semaphore_init( &readers_turn );     semaphore_init( &writers_turn );       /* writer must go first */     semaphore_down( &readers_turn );       pthread_create( &reader, pthread_attr_default,                     (void *)&reader_function, NULL);     writer_function();  }    void writer_function(void)  {     while(1)     {          semaphore_down( &writers_turn );          buffer = make_new_item();          semaphore_up( &readers_turn );     }  }    void reader_function(void)  {     while(1)     {          semaphore_down( &readers_turn );          consume_item( buffer );          semaphore_up( &writers_turn );     }  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?