LabVIEW程序設(shè)計模式(五)—生產(chǎn)者/消費者模式(4)
圖 41 生產(chǎn)速率高于消費速率
當(dāng)將操作方式變?yōu)?ldquo;不生產(chǎn),只消費”時,生產(chǎn)者循環(huán)將停止生產(chǎn),而消費者循環(huán)將組件消耗掉緩沖區(qū)中的數(shù)據(jù)直至數(shù)據(jù)全部消耗完(此時接收到的波形與發(fā)送的波形點一致),如圖 42所示。
圖 42 不生產(chǎn),只消費
再將操作方式變?yōu)?ldquo;只生產(chǎn),不消費”,消費者循環(huán)將停止消費,而生產(chǎn)者循環(huán)將產(chǎn)生數(shù)據(jù)直至數(shù)據(jù)緩沖區(qū)填滿,如圖 43所示。
圖 43 只生產(chǎn),不消費
從運行過程來看,借助于timeout的設(shè)置,消費者接收的數(shù)據(jù)始終與生產(chǎn)者發(fā)送的數(shù)據(jù)是一致的,避免點數(shù)據(jù)點溢出的問題。當(dāng)然,在實際使用中需要避免由于timeout設(shè)置為-1而導(dǎo)致的無限等待和死循環(huán)。
評論