0
我新的操作系統,我沒有得到解決生產者消費者問題, 生產者進程給出解決生產者消費者
item nextProduced;
while(true)
{
while(((in+1)%BUFFER_SIZE)==out)
; /* do nothing */
buffer[in]=nextProduced;
in=(in+1)% BUFFER_SIZE;
}
和消費過程中逐
給出item nextConsumed;
while(true)
{
while(in==out)
; /* do nothing */
nextConsumed=buffer[out];
out=(out+1)% BUFFER_SIZE;
}
什麼,我沒有得到IS- 這是寫在書中,在界緩衝區的情況下,消費者必須等待,如果緩衝區是空的,生產者必須等待,如果緩衝區已滿, 但是從processe s, 如果緩衝區已滿,則第二個while循環的條件將爲真,因此該進程將進入無限循環並且不會出現,那麼該解決方案將如何工作。 有人請解釋一下,如果你可以請一個實際的例子,那就太棒了!
發佈'in'和'out'聲明。 – chux