有几个线程同时调用CallNamedPipe将消息发送到同一个命名pipe道。 方法CallNamedPipe对Windows线程安全,我应该使用互斥锁来保护对同一个命名pipe道的并发访问吗?
是的,它本质上是线程安全的,因为它不使用句柄,缓冲区或客户端上的两个(或多个)线程可能试图同时访问的任何其他内容。 每次调用CallNamedPipe都会打开命名管道的新实例,发送消息并关闭句柄。
CallNamedPipe
(线程同时访问同一个命名管道的不同实例的事实不是问题,与多个进程同时访问同一个命名管道的不同实例没有区别,如果不允许,命名管道将会很多没有那么有用了。)