[理工] OS blocking/non-blocking/send/receive
send/receive同步的問題
假如A和B都為mailbox
收方的code如下:
Non-Blocking Receive(A,msgA);
if(msgA==NULL){
Blocking Receive( B, msgB );
Blocking Receive( A, msgA);
}
else
{ Blocking Receive(B, msgB ); }
請問收方何時可以往下執行?
答案: 一定要從A和B收到有效訊息後, 且順序無所謂, 才可往下
************************************************************
請問這段code的意思是這樣嗎?
先去看mailbox A有沒有訊息,
如果沒有, 則在mailbox B stand by直到有訊息後, 再到mailbox A stand by直到有訊息
(順序是先B後A), 然後才能繼續往下;
若mailbox A有訊息, 則到mailbox B stand by 直到拿到訊息
(順序是先A後B), 才能繼續往下
請問是這樣解讀嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.176.47
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1512148056.A.E26.html
※ 編輯: clonsey1314 (1.163.176.47), 12/02/2017 01:09:05
※ 編輯: clonsey1314 (1.163.176.47), 12/02/2017 01:19:52
推
12/02 09:01,
6年前
, 1F
12/02 09:01, 1F
謝謝
※ 編輯: clonsey1314 (1.163.178.168), 12/02/2017 14:44:45