windows - Windows 上的 CallNamedPipe 线程安全吗

标签 windows concurrency thread-safety named-pipes

有多个线程同时调用 CallNamedPipe 以将消息发送到同一命名管道。 windows上的CallNamedPipe方法线程安全吗,我应该使用互斥锁来保护对同一命名管道的并发访问吗?

最佳答案

是的,它本质上是线程安全的,因为它不使用句柄、缓冲区或客户端上两个(或更多)线程可能尝试同时访问的任何其他内容。每次调用 CallNamedPipe 时,它​​都会打开命名管道的新实例、发送消息并关闭句柄。

(线程同时访问同一命名管道的不同实例这一事实并不是问题。这与多个进程同时访问同一命名管道的不同实例没有什么不同,如果不允许命名管道的话会比它们有用得多。)

关于windows - Windows 上的 CallNamedPipe 线程安全吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30284666/

相关文章:

ruby-on-rails - Windows 上的 ruby : Cannot install mysql2 gem - Failed to build gem native extension

.net - MySQL Workbench 5.2.42 在 Win7 x64 上启动时崩溃

c# - 使用 DateTime.Now.Ticks 生成唯一的数字 ID

java - 微服务和事务管理器如何处理并发问题

java - 为什么并发 GC 需要 remark 阶段

java - Android 线程实例化

windows - Visual C++和并发线程..为什么会这样?

windows - 无法在 Windows 上安装 XML::LibXML 模块

java - 2010 年的 java 并发修改异常崩溃

java - 用户定义线程和系统线程的区别(对于Sleep方法)