LabVIEW程序設(shè)計(jì)模式(五)—生產(chǎn)者/消費(fèi)者模式(4)

圖 41 生產(chǎn)速率高于消費(fèi)速率
當(dāng)將操作方式變?yōu)?ldquo;不生產(chǎn),只消費(fèi)”時(shí),生產(chǎn)者循環(huán)將停止生產(chǎn),而消費(fèi)者循環(huán)將組件消耗掉緩沖區(qū)中的數(shù)據(jù)直至數(shù)據(jù)全部消耗完(此時(shí)接收到的波形與發(fā)送的波形點(diǎn)一致),如圖 42所示。

圖 42 不生產(chǎn),只消費(fèi)
再將操作方式變?yōu)?ldquo;只生產(chǎn),不消費(fèi)”,消費(fèi)者循環(huán)將停止消費(fèi),而生產(chǎn)者循環(huán)將產(chǎn)生數(shù)據(jù)直至數(shù)據(jù)緩沖區(qū)填滿,如圖 43所示。

圖 43 只生產(chǎn),不消費(fèi)
從運(yùn)行過程來看,借助于timeout的設(shè)置,消費(fèi)者接收的數(shù)據(jù)始終與生產(chǎn)者發(fā)送的數(shù)據(jù)是一致的,避免點(diǎn)數(shù)據(jù)點(diǎn)溢出的問題。當(dāng)然,在實(shí)際使用中需要避免由于timeout設(shè)置為-1而導(dǎo)致的無限等待和死循環(huán)。
評(píng)論