.NET 中的跨进程读写同步原语?

2023-11-25

是否有跨进程工作的读/写锁定机制(类似于互斥锁,但读/写而不是独占锁定)?我想允许并发读取访问,但允许独占写入访问。


Windows 不包含跨进程读写锁。可以使用信号量和互斥量的组合来构造互斥量(互斥量由写入者持有以进行独占访问,或者由读取者持有,然后读取者使用信号量释放其他读取者,即写入者将仅等待互斥体,而读取者则等待) 。

但是,如果预期争用较低(即没有线程长时间持有锁),则互斥可能仍然会更快:读写器锁的额外复杂性压倒了允许多个读取器进入的任何好处。(读写器锁)只有当有更多的读取器并且锁被持有很长一段时间时,锁才会更快,但只有您的分析才能证实这一点。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET 中的跨进程读写同步原语? 的相关文章

随机推荐

  • 刷新不起作用

    Why fflush 不起作用c2 and c0 如果我使用声明c0 0 and c2 0它有效 但是fflush stdin 不起作用 我尝试放在不同的地方 但它不起作用 我在 ubuntu 13 04 中使用代码块 int main v
  • 如何将 mysql_data_seek 与 PDO 一起使用?

    我想将 mysql data seek 与来自 google 搜索的 PDO 一起使用我发现它应该如下所示 row0 result gt fetch PDO FETCH ASSOC PDO FETCH ORI ABS 0 但这不起作用 我做
  • 同一 AppDomain 中的多个 WPF 应用程序

    我得到以下设置 WPF 应用程序 exe and 包含 WinForms 窗口和 WPF 窗口的 DLL WPF Application exe 从 DLL 调用 WinForms 窗口 WinForms 窗口在 DLL 中创建 WPF 窗
  • 如何将数据从DialogFragment发送到Fragment?

    我有一个片段可以打开Dialogfragment获取用户输入 字符串和整数 我如何将这两件事发送回片段 这是我的 DialogFragment public class DatePickerFragment extends DialogFr
  • 我可以将 Javascript 对象传递给 Android WebView 吗?

    我正在将 Web 应用程序迁移到 Android 版本 接收并处理 JSON 数据后 我在页面中保存了一组 Javascript 对象 如何将 javascript 对象之一的完整内容 传出 到 webview 容器以使用本机 androi
  • 为什么 jQuery 的 .ajax() 方法不发送我的会话 cookie?

    登录后通过 ajax 到某个网站 我正在尝试发送第二个 ajax 向该站点发出请求 但是当我检查使用 FireBug 发送的标头时 请求中不包含会话 cookie 我究竟做错了什么 我是在跨域场景下操作的 在登录期间 远程服务器返回 Set
  • 制作一个android地图菜单来改变地图类型

    我的 Android 应用程序中有一张地图 默认情况下 它显示卫星视图 但我已将其关闭以仅显示路线图视图 但是 我想知道如何构建一个菜单 以便当用户按下菜单按钮时 它会在底部显示一个带有 切换卫星地图 的部分 我将来会在菜单中添加其他项目
  • Linq-to-sql 不包含或不在?

    我正在构建一个民意调查小部件 我有 2 个表 分别称为 Polls 和 PollsCompleted 我需要执行 linq 查询来获取 PollsCompleted 中给定用户不存在的所有民意调查 我有以下几套 民意调查 其中 Active
  • 在编译时重命名符号,无需以跨平台方式更改代码

    在创建静态对象时 是否可以在编译时以跨平台方式重命名符号 无需更改代码 我最近推荐了 objcopy 但 linux 不是唯一的目标平台 它也必须在 mac 上运行 我正在使用 gcc 进行编译 所以我希望有某种 gcc 选项 我听说过 d
  • Proguard 回溯丢失的行号

    我正在尝试从我的 Android 应用程序中反混淆堆栈跟踪 我在构建应用程序时使用了 proguard 并且运行 retrace 似乎或多或少有效 不起作用的是解码行号 输出上不显示行号 它列出了每个 at 的多个选择 这是我的 progu
  • Ember Data 嵌套资源 URL

    假设我有一个具有以下布局的 Rails 应用程序 从我的实际项目中对此进行了一些简化 User has many Notes Category has many Notes Note belongs to User belongs to C
  • 在 PHP 中为逗号分隔的字符串添加引号

    我有一个表单 它是一个选择多个输入的表单 它发布如下值 option1 option2 option3 etc 将其转换为的最佳方法是什么 option1 option2 option3 etc 目前我正在这样做 但感觉不对 variabl
  • Spring Boot 升级错误 - 名称为 org.springframework.transaction.config.internalTransactionalEventListenerFactory 的 bean 定义无效

    在尝试在基于 java 的 Web 应用程序中将 spring boot 升级到最新版本 2 1 1 并将 spring 框架升级到 5 1 3 时 出现以下错误 Invalid bean definition with name org
  • Sqlalchemy:使用多个 filter() 调用生成 OR 子句

    我是 sqlalchemy 的新手 需要一些帮助 我正在尝试编写一个小型应用程序 我必须为其动态更改选择语句 所以我这样做s select files 然后我添加过滤器s s where files c createtime between
  • 终端启动时出现错误消息[重复]

    这个问题在这里已经有答案了 每次启动终端时我都会收到此错误消息 bash usr local bin usr local bin usr bin bin usr sbin sbin opt X11 bin No such file or d
  • Java:IndentingXMLStreamWriter 替代方案?

    我正在使用 StAX 创建一个相当大的 xml 文档 到目前为止 我一直在使用 IndentingXMLStreamwriter 类来获取格式良好的文档 另请参阅这个答案 几天前 我们使用较旧的 jdk 版本 6 26 设置了一个 jenk
  • JSF 更新复合组件

    是否可以仅通过指定父复合 ID 来更新复合组件的子组件 例如 如果我有
  • appcfg.py 显示您必须以管理员身份登录

    当我尝试通过以下方式将示例 csv 数据上传到我的 GAE 应用程序时appcfg py 它显示以下 401 错误 2015 11 04 10 44 41 820 INFO client py 571 Refreshing due to a
  • 如何在 Selenium WebDriver 中自动清除浏览器缓存?

    如何在每次测试运行之前清除浏览器缓存 我尝试过driver manage deleteAllCookies in setUp创建驱动程序实例后的方法 它适用于 Firefox 但对于 IE 不起作用 有没有IE的解决办法 请提供给我 您可以
  • .NET 中的跨进程读写同步原语?

    是否有跨进程工作的读 写锁定机制 类似于互斥锁 但读 写而不是独占锁定 我想允许并发读取访问 但允许独占写入访问 Windows 不包含跨进程读写锁 可以使用信号量和互斥量的组合来构造互斥量 互斥量由写入者持有以进行独占访问 或者由读取者持