[理工] OS blocking/non-blocking/send/receive

楼主: clonsey1314 (Clonsey)   2017-12-02 01:07:33
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), 才能继续往下
请问是这样解读吗?
作者: can18 (18号)   2017-12-02 09:01:00

Links booklink

Contact Us: admin [ a t ] ucptt.com