Mar*_*rty 1 parallel-processing mutex pthreads
我假设这是在这里被问到的,但是我找不到这个特定的问题。它只是在锁定和解锁之间锁定部分代码,还是锁定全局变量?喜欢这个代码
pthread_mutex_lock(&mtx);
bitmap[index] = 1;
pthread_mutex_unlock(&mtx);
Run Code Online (Sandbox Code Playgroud)
互斥锁只是锁定那行代码?有没有一种方法可以锁定特定变量,而不只是锁定使用它们的部分代码?
不,它会锁定实际的互斥变量。
试图在锁定该互斥锁时对其进行锁定的任何代码段都将阻塞,直到将其解锁为止。
如果那是唯一锁定互斥锁的代码,那么可以,可以说它只是保护该行。但这并不一定。
互斥锁用于序列化对资源的访问。无论该资源被视为代码行,还是bitmap阵列(在这种情况下更可能),都取决于互斥体被锁定和解锁的位置。
您可能有几个不同的区域bitmap可以读取或修改数组,您应该确保它们都受到互斥锁的保护。
| 归档时间: |
|
| 查看次数: |
1592 次 |
| 最近记录: |