arrays - 如何使用带或不带互斥锁的多个 pthread 访问和修改相同的内存块?
问题描述
所以我有一个数组unsigned char words[64000][9]
,用零填充。我创建了两个 pthread,一个将随机选择数组上的一行并将该行的最后一位翻转为 1,另一个线程应读取相同的二维数组并检测哪一行有 1。我已经创建了线程,并且像这样传递同一个数组-
pthread_create(&flip, NULL, flip_bit, (void*) (words));
pthread_create(&detect, NULL, detect_bit, (void*) (words));
现在我的问题是:如何确保两个线程访问它并修改(执行它们所做的)相同的 2D 数组?没有互斥锁可以做到吗?如果互斥锁是必须的,我该如何为我的情况实施它?
谢谢,我真的很感激。
解决方案
推荐阅读
- python - ValueError: int() 的无效文字,以 10 为基数:'one'
- java - JFrame 导出到 Jar 时扩展
- c# - outOfRange 的扫雷异常
- node.js - 评论未显示在页面上
- react-native - 没有redux的react native中的connectycube聊天实现图
- hazelcast-jet - HazelcastSerializationException:当 Jet 作业在多个集群上运行时
- javascript - 在 ReactJS 中将 props 传递给弹出窗口
- python - 如何使用 tensorflow 打印预测
- html - 避免 HTML 网格中的死 DIV
- python - 日期时间列操作并在 Python 中的数据框中创建一个新列