linux下的c語(yǔ)言編程步驟 在生產(chǎn)者 - 消費(fèi)者問(wèn)題中,如果缺少了signal(full) 或signal(empty) ,對(duì)執(zhí)行結(jié)果將會(huì)有何影響?
在生產(chǎn)者 - 消費(fèi)者問(wèn)題中,如果缺少了signal(full) 或signal(empty) ,對(duì)執(zhí)行結(jié)果將會(huì)有何影響?如果signal(full)丟失,則表示自第一個(gè)生產(chǎn)者進(jìn)程以來(lái),信號(hào)量full值
在生產(chǎn)者 - 消費(fèi)者問(wèn)題中,如果缺少了signal(full) 或signal(empty) ,對(duì)執(zhí)行結(jié)果將會(huì)有何影響?
如果signal(full)丟失,則表示自第一個(gè)生產(chǎn)者進(jìn)程以來(lái),信號(hào)量full值未更改。
即使緩沖池產(chǎn)品已滿,full值仍為0,因此消費(fèi)者進(jìn)程在執(zhí)行wait(full)]時(shí)認(rèn)為緩沖池為空,無(wú)法獲取產(chǎn)品,因此消費(fèi)者進(jìn)程被忽略總是在等待。
如果缺少信號(hào)(空),則在生產(chǎn)者進(jìn)程用產(chǎn)品填充n個(gè)緩沖區(qū)后,使用者進(jìn)程將開(kāi)始從中提取產(chǎn)品。此時(shí),empty=0,full=n,然后每次使用者進(jìn)程獲取產(chǎn)品時(shí),空值都不會(huì)更改
直到緩沖池為空,空值也為0。即使緩沖池中有n個(gè)空緩沖區(qū),生產(chǎn)者進(jìn)程也必須
返回緩沖池產(chǎn)品發(fā)布也會(huì)被阻止,因?yàn)閼?yīng)用程序無(wú)法到達(dá)空緩沖區(qū)。