c - 信号量如何保护共享数据?
问题描述
为什么我们可以允许多个线程同时运行?(sem_init(&sem,0,5)),我认为这意味着可以运行 5 个线程。那么为什么不会出现竞态条件>
解决方案
sem_wait
不计其数,sem_init
确实如此。但是您的基本问题仍然有效。
信号量通常不打算停止数据竞争。它们用于您希望一次运行最多 n 个消费者的情况。
您应该phtread_mutex
用于数据竞争预防
推荐阅读
- jquery - 在所有页面上切换滚动类,除了一个
- ftp - 如何通过 FTP 发送我最近的数据集?
- javascript - 如何使 div 从 javascript 中不可见?
- html - 如何转义嵌入在 HTML 页面中的 XML 代码片段
- json.net - 如何反序列化反应发布的节点js中的动态脏json数据
- java - Spring Boot 执行器错误 406 不可接受
- android - 自定义进度条在底部被切开
- php - 如何知道 woocommerce 中的订单何时打开(日期和时间)
- c# - 使用用户凭据获取 Web API 的令牌
- kubernetes - Kubernetes TLS 问题