91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-09
  • 語言: C/C++
  • 標簽: C語言??閱覽室??

資源簡介

閱覽室里有20個座位,外面有10個等待位,若讀者來時發(fā)現(xiàn)等待位已滿則離去。用C語言多線程實現(xiàn),用信號量實現(xiàn)同步互斥

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?

#define?READING?0;
#define?WAITING?1;

int?readerNum=0;
int?waitNum=0;

sem_t?synchronize;
sem_t?seat;
sem_t?room;

void?*waitingroom()?{
????while(1)?{
sem_wait(&synchronize);
sem_wait(&seat);
waitNum=waitNum+1;
printf(“There?are?%d?readers?reading.?\n“?readerNum);
printf(“There?are?%d?readers?waiting.?\n“?waitNum);
????}
}

void?*come()?{
????while(1)?{
??????printf(“---------------------------------\n“);
??????printf(“A?new?reader?comes.?\n“);
??????
??????if(readerNum>=20&&waitNum>=10)?{
printf(“The?reader?left.?\n“);
??????}else?if(readerNum>=20)?{
??printf(“A?new?reader?is?waiting.?\n“);
??sem_post(&synchronize);
??sem_wait(&room);
??????}else?{
readerNum=readerNum+1;
printf(“There?are?%d?readers?reading.?\n“?readerNum);
printf(“There?are?%d?readers?waiting.?\n“?waitNum);
??????}

??????sleep(1);
????}
????
}

int?main()?{
????int?res;
????pthread_t?thread;
??

評論

共有 條評論