简述在使用同步原语时.发送者在消息发送完成之前为何不能使用缓冲区,应如何解决这一问题。

admin2016-12-23  76

问题 简述在使用同步原语时.发送者在消息发送完成之前为何不能使用缓冲区,应如何解决这一问题。

选项

答案使用同步原语发送消息时,在消息实际发送完成之前,调用进程便一直处于阻塞状态。这段时问不可能使用缓冲区。倘若发送进程在消息发送之前,即在消息发送期间使用或修改原来的缓冲区,将会造成错误。 为了解决这一问题,应采用异步原语,其方法有: (1)采用带拷贝的非阻塞原语,即让内核把消息拷贝到内核缓冲区,允许调用进程继续运行。 (2)带中断的非阻塞发送,即当消息发送完成后,中断发送进程,通知发送进程此时缓冲区可用。

解析
转载请注明原文地址:https://kaotiyun.com/show/YVjx777K
0

最新回复(0)