Windows程序控制實現生產者消費者問題

2021-08-18 00:15:39 字數 1967 閱讀 5916

寫得非常艱難的多程序**,很多細節要注意,主要是自己的思路不夠清晰。實現的比較醜陋,各位見笑了。

#include#include#include static lpctstr mutex_read_name="read";//生產者互斥訪問緩衝區

static lpctstr mutex_write_name="write";//消費者互斥訪問緩衝區

static lpctstr mutex_print_name="print";//生產者消費者互斥列印避免混合輸出 如果緩衝區只有乙個mutex則可以不用此變數

static lpctstr event_continue_name="continue";//為了避免建立子程序順序造成的影響 子程序等待同一訊號一起開始

static lpctstr sem_full="full";

static lpctstr sem_empty="empty";

char a[3]=;

void signalstart()

closehandle(heventcontinue);

} bool createchild(char* process)

return(bcreateok);

}void produce()

char** ppdata=reinterpret_cast(pfile+4);

struct timeval t;

unsigned int seed;

int count=4;

waitforsingleobject(heventcontinue,infinite);

while(count--)

else

++(*ppdata);

releasemutex(hmutex_write);

releasesemaphore(hsem_full,1,null);//full訊號量+1

} unmapviewoffile(pfile);

closehandle(hmutex_write);

closehandle(hmutex_print);

closehandle(hsem_full);

closehandle(hsem_empty);

closehandle(heventcontinue);

}void consume()

char** ppdata=reinterpret_cast(pfile+12);

struct timeval t;

unsigned int seed;

int count=3;

waitforsingleobject(heventcontinue,infinite);

while(count--)

unmapviewoffile(pfile);

closehandle(hmutex_read);

closehandle(hmutex_print);

closehandle(hsem_full);

closehandle(hsem_empty);

closehandle(heventcontinue);

}void init_wait()

for(int i=0;i<4;i++)

releasemutex(mutex_print);

releasemutex(mutex_read);

releasemutex(mutex_write);

signalstart();

sleep(10000);

}int main(int argc,char* argv)

else if(argc>1&&strcmp(argv[1],"consumer")==0)

else

}

程序控制,自主實現shell

撤銷 ctrl command z 重做 ctrl command y 加粗 ctrl command b 斜體 ctrl command i 無序列表 ctrl command shift u 有序列表 ctrl command shift o 檢查列表 ctrl command shift c ...

程序及程序控制

學習程序之前,先了解一下程式 所謂程式就是指編譯好的二進位制檔案,在磁碟上,不占用系統資源 cpu 記憶體.而程序是與作業系統相關,是指在記憶體中執行起來的程式,占用一些系統資源,每當乙個程式執行,就相應產生乙個程序。程序的一些相關資訊被放在乙個叫程序控制塊的資料結構中,稱之為pcb。linux下的...

windows遠端控制

開篇 這裡使用的是windows自帶的遠端控制功能,同樣qq也有類似的遠端協助控制功能。與qq遠端協助相比,他不需要借助其他軟體就可以實現遠端控制,並且 被控制的電腦將會被鎖屏。當然也可以借助teamview等軟體來實現遠端控制,與windows自帶的控制功能相比,個人還是比較喜歡自帶的控制功能。準...