下面的模型一般都用在核心服务器或者kernel中的多任务控制部分!十分有用。

消息发送函数原型:

send(dest, message);
recv(src, message);

下面将接收消息的叫做Server,发送消息的叫做Client.

1 Client -> Server (send)

if(server.state != Recieving)    //将Client挂起,并且加入Server的消息队列。
  set(client.state);
  block(client);
  add client to server's Queue.
else
  copy message to server;
  reset(server.state);
  unblock(server);
endif

2 Server -> Cient(recv)

if(server.q_recieve == 0)      //将Server挂起,等待消息的到来
  set(server.state);
else
  get one message from Queue;
  reset(client.state);
  unblock(the message's sender client);
endif

相关文章:

  • 2022-01-10
  • 2021-07-26
  • 2021-09-08
  • 2021-09-28
  • 2021-09-08
  • 2021-07-29
猜你喜欢
  • 2022-12-23
  • 2021-05-22
  • 2021-11-01
  • 2021-05-13
  • 2020-02-04
  • 2021-12-14
  • 2021-07-05
相关资源
相似解决方案