阻塞與非阻塞的區(qū)別 linux下,c語言中,read() 函數(shù),設(shè)為非阻塞,不能讀到內(nèi)容嗎?
linux下,c語言中,read() 函數(shù),設(shè)為非阻塞,不能讀到內(nèi)容嗎?在非阻塞狀態(tài)下,需要有相應(yīng)的通知機(jī)制,讓執(zhí)行程序得到任務(wù)完成的狀態(tài)通知。讀系統(tǒng)調(diào)用沒有中斷生成,可以實(shí)現(xiàn)無阻塞,但執(zhí)行后會(huì)自動(dòng)退
linux下,c語言中,read() 函數(shù),設(shè)為非阻塞,不能讀到內(nèi)容嗎?
在非阻塞狀態(tài)下,需要有相應(yīng)的通知機(jī)制,讓執(zhí)行程序得到任務(wù)完成的狀態(tài)通知。讀系統(tǒng)調(diào)用沒有中斷生成,可以實(shí)現(xiàn)無阻塞,但執(zhí)行后會(huì)自動(dòng)退出,并清除緩沖區(qū)。因此,原程序無法判斷讀取執(zhí)行何時(shí)完成,理論上也會(huì)讀取內(nèi)容,但不方便截取時(shí)間和時(shí)間。