亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pv.c

?? 在linux環境下c語言實現生產者消費者問題。多個生產者消費者互斥訪問緩沖區
?? C
字號:
#include <sys/mman.h>#include <sys/types.h>#include <linux/sem.h>#include <fcntl.h>#include <unistd.h>#include <stdio.h>#include <errno.h>#include <time.h>#define BUFSIZE 20//聲明三個信量int fullid;int emptyid;int mutexid;int main(){   struct sembuf P,V;  union semun arg;  //生成信號量  fullid= semget(IPC_PRIVATE,1,IPC_CREAT|0666);  emptyid=semget(IPC_PRIVATE,1,IPC_CREAT|0666);  mutexid=semget(IPC_PRIVATE,1,IPC_CREAT|0666);  //為信號量賦值  arg.val = 0;  if(semctl(fullid , 0 , SETVAL , arg) == -1) perror("semctl setval error");  arg.val =BUFSIZE;  if(semctl(emptyid , 0 ,SETVAL , arg) == -1) perror("semctl setval error");  arg.val = 1;  if(semctl(mutexid , 0 ,SETVAL , arg) == -1) perror("setctl setval error");  //初始化P,V操作  V.sem_num=0;  V.sem_op =1;  V.sem_flg=SEM_UNDO;  P.sem_num=0;  P.sem_op =-1;  P.sem_flg=SEM_UNDO;   //定義共享內存      int shmid;                      int *buffer;     int getid=0,setid=0;     int *get;     int *set;  //創建并附接共享內存    shmid=shmget(IPC_PRIVATE,20*sizeof(int),0666|IPC_CREAT);	buffer=(int*)shmat(shmid,0,0);    setid=shmget(IPC_PRIVATE,sizeof(int),0666|IPC_CREAT);	set=(int*)shmat(setid,0,0);    getid=shmget(IPC_PRIVATE,sizeof(int),0666|IPC_CREAT);	get=(int*)shmat(getid,0,0);  int j=0;  if(fork()==0 )     {      if(fork()>0) //生產者A進程        {          while( (*set) < 30)                {                  semop(emptyid , &P ,1 );                  semop(mutexid , &P , 1);                  buffer[*(set)%BUFSIZE] = (*set)+ 1;                  printf("生產者A放入%d\n", buffer[(*set)%BUFSIZE]);                  printf("當前緩沖區的內容為:");	for(j=0;j<20;j++)	  printf("%d ",buffer[j]);                      printf("\n\n");                  (*set)++;                  semop(mutexid , &V , 1);                  semop(fullid , &V , 1);                  sleep(1);                }                wait(0);//等待子進程終止                wait(0);                wait(0);                shmdt(buffer);//斷開附接的共享內存                shmctl(shmid,IPC_RMID,0);//撤銷共享內存                shmdt(get);//斷開附接的消費者的共享內存                shmctl(getid,IPC_RMID,0);//斷開生產者共享內存                shmdt(set);                shmctl(setid,IPC_RMID,0);//撤銷信號量集                semctl(emptyid,IPC_RMID,0);                semctl(fullid,IPC_RMID,0);	                semctl(mutexid,IPC_RMID,0);                printf("生產者A進程結束\n");                exit(0);        }      else       //生產者B進程        {                   if(fork()>0)              {                while( (*set) < 30)                  {                    semop(emptyid , &P ,1 );                    semop(mutexid , &P , 1);                    buffer[*(set)%BUFSIZE] = (*set) + 1;                    printf("生產者B放入%d\n", buffer[(*set)%BUFSIZE]);                    printf("當前緩沖區的內容為:");	for(j=0;j<20;j++)	  printf("%d ",buffer[j]);                      printf("\n\n");                    (*set)++;                    semop(mutexid , &V , 1);                    semop(fullid , &V , 1);                    sleep(1);                  }               printf("生產者B進程結束\n");               exit(0);               }            else               {                  if(fork()>0)  //消費者A進程                    {	while(1)	{ 	  semop(fullid , &P , 1);	  semop(mutexid , &P , 1);                        if(*get == 30)                            break;	  printf("消費者A消費%d\n", buffer[(*get)%BUFSIZE] );                        buffer[(*get)%BUFSIZE]=0;                        printf("當前緩沖區的內容為:");	    for(j=0;j<20;j++)	        printf("%d ",buffer[j]);                        printf("\n\n");	  (*get)++;	  semop(mutexid , &V , 1);	  semop(emptyid , &V ,1 );	  sleep(1);	 }                       printf("消費者A進程結束\n");	 exit(0);                    }                      else                          {  //消費者B進程                                 while(1)                                     {                                       semop(fullid , &P , 1);	                 semop(mutexid , &P , 1);                                       if(*get == 30)                                          break;                                       printf("消費者B取出 %d\n",buffer[(*get)%BUFSIZE] );                                        buffer[(*get)%BUFSIZE]=0;                                       printf("當前緩沖區的內容為:");	                 for(j=0;j<20;j++)	                   printf("%d ",buffer[j]);                                       printf("\n\n");	                 (*get)++;	                semop(mutexid , &V , 1);                                      semop(emptyid , &V ,1 );	                sleep(1);	               }                               printf("消費者B進程結束\n");                               exit(0);	                        }                 }            }       }} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美主播一区二区三区| 日韩vs国产vs欧美| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美日韩免费观看一区三区| 在线观看亚洲成人| 在线观看日韩一区| 欧美日韩亚洲国产综合| 欧美群妇大交群中文字幕| 7777精品伊人久久久大香线蕉经典版下载 | 欧洲精品在线观看| 欧美乱妇20p| 精品国产一二三区| 欧美韩国日本不卡| 亚洲欧美另类久久久精品2019| 亚洲色图都市小说| 午夜影院在线观看欧美| 三级精品在线观看| 国产在线精品一区二区夜色| 成人黄色综合网站| 欧美三级视频在线播放| 91精品国产黑色紧身裤美女| 精品福利一区二区三区| 国产精品丝袜在线| 亚洲国产欧美在线| 国产综合色产在线精品| av一区二区三区| 欧美三级视频在线| 国产日韩精品一区二区三区在线| 亚洲女与黑人做爰| 蜜臀va亚洲va欧美va天堂| 成人国产一区二区三区精品| 欧美综合久久久| 26uuu亚洲综合色欧美| 亚洲视频1区2区| 看片的网站亚洲| 99久久亚洲一区二区三区青草| 欧美日韩小视频| 国产日韩精品一区二区三区| 午夜伦欧美伦电影理论片| 国产精品影音先锋| 在线不卡免费av| 中文字幕一区二区视频| 看国产成人h片视频| 91久久国产综合久久| 久久免费电影网| 日韩电影在线免费| 在线精品视频免费播放| 国产精品欧美一区喷水| 蜜臀a∨国产成人精品| 91美女片黄在线观看| 欧美成人国产一区二区| 亚洲国产一区二区三区青草影视| 成人福利视频在线| 精品国产免费人成电影在线观看四季 | 美日韩黄色大片| 欧美日韩免费一区二区三区视频| 国产精品国产三级国产普通话99| 老司机精品视频一区二区三区| 欧美色涩在线第一页| 亚洲女爱视频在线| 成人性生交大片免费看在线播放| 久久综合999| 老司机免费视频一区二区| 欧美浪妇xxxx高跟鞋交| 亚洲一区免费在线观看| 91网站最新网址| 国产精品久久久久久久蜜臀| 国产精品夜夜嗨| 久久综合久色欧美综合狠狠| 麻豆精品视频在线| 欧美一级片免费看| 视频一区二区中文字幕| 欧美性猛交xxxx黑人交| 一区二区不卡在线视频 午夜欧美不卡在| 国产成人午夜高潮毛片| 国产亚洲欧洲997久久综合 | 欧美亚洲国产bt| 亚洲黄色片在线观看| 欧美大片在线观看| 青青草国产精品亚洲专区无| 91精品国产品国语在线不卡| 蜜桃视频一区二区三区| www久久精品| 不卡av在线网| 一区二区成人在线观看| 欧美精品在欧美一区二区少妇 | 精品国产免费人成在线观看| 国产一区二区三区四 | 成人福利视频网站| 亚洲图片另类小说| 欧美天堂一区二区三区| 视频一区视频二区中文字幕| 精品国产乱码91久久久久久网站| 国产成人免费在线观看不卡| 中文字幕精品一区二区三区精品| 99re在线精品| 午夜精品久久久久久久99樱桃| 3d动漫精品啪啪| 国产精品一区免费视频| 亚洲欧美自拍偷拍色图| 精品污污网站免费看| 免费久久99精品国产| 国产欧美日韩一区二区三区在线观看| 成人不卡免费av| 日韩成人精品在线观看| 久久久99精品久久| 欧美亚洲另类激情小说| 欧美日韩免费在线视频| 国产一区二区调教| 亚洲美女在线一区| 欧美videos大乳护士334| 国产99久久久精品| 亚洲国产成人精品视频| 日本一区二区三区在线观看| 欧美网站大全在线观看| 国产精品影视在线观看| 亚洲va在线va天堂| 亚洲国产精品高清| 制服丝袜日韩国产| 91丝袜高跟美女视频| 麻豆精品视频在线观看免费| 亚洲欧洲综合另类| 久久综合色之久久综合| 欧美日韩一级黄| 91小视频免费看| 国产98色在线|日韩| 日韩高清在线一区| 一区二区日韩电影| 欧美激情艳妇裸体舞| 日韩你懂的电影在线观看| 日本道免费精品一区二区三区| 国产美女精品一区二区三区| 亚洲bt欧美bt精品777| ...av二区三区久久精品| 26uuu国产日韩综合| 日韩欧美一区二区久久婷婷| 欧美日韩在线不卡| 色婷婷综合久久久久中文一区二区| 国内精品久久久久影院色| 日产欧产美韩系列久久99| 午夜影院在线观看欧美| 一区二区三区精密机械公司| 国产精品国产三级国产aⅴ入口| 久久综合久久综合亚洲| 精品国产一区二区三区久久久蜜月| 欧美午夜电影一区| 欧美在线一二三| 色欧美片视频在线观看| 色婷婷激情综合| 在线日韩一区二区| 色婷婷综合激情| 日本韩国一区二区| 91丝袜美腿高跟国产极品老师| 99精品视频一区二区| 99热国产精品| 色婷婷亚洲一区二区三区| 在线观看日韩电影| 欧美日韩色一区| 欧美一级日韩免费不卡| 精品日韩在线观看| 久久久国产一区二区三区四区小说 | 免费观看在线色综合| 另类人妖一区二区av| 国产在线播放一区三区四| 国产激情偷乱视频一区二区三区| 国产成a人亚洲精品| 色综合天天狠狠| 欧美日韩mp4| 久久欧美中文字幕| 中文字幕中文字幕中文字幕亚洲无线| 国产精品久久久久永久免费观看 | 最新日韩av在线| 一区二区三区四区不卡在线 | 国产精品资源网| av电影天堂一区二区在线观看| 色哟哟一区二区在线观看| 777奇米四色成人影色区| 欧美精品一区二| 亚洲精品成a人| 美女一区二区三区| 国产.欧美.日韩| 在线视频亚洲一区| 久久综合九色综合久久久精品综合 | 久久精品国产在热久久| 成人黄色软件下载| 在线电影院国产精品| 国产欧美一区二区在线观看| 亚洲乱码中文字幕| 狠狠色丁香久久婷婷综合_中| 99久久精品国产导航| 4438x成人网最大色成网站| 久久青草国产手机看片福利盒子| 亚洲免费观看视频| 国产真实乱对白精彩久久| 色94色欧美sute亚洲线路一久 | 91热门视频在线观看| 日韩免费视频一区二区| 中文字幕一区免费在线观看| 免费成人你懂的| 欧美在线视频全部完|