gpt4 book ai didi

c - C中的细粒度锁定

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:30 26 4
gpt4 key购买 nike

我有这个交换元素的代码:

   atomic{
int temp = a[i];
a[i] =a[j];
a[j] = temp;
}

我如何使用细粒度锁定来实现同样的效果?

最佳答案

可以使用mutex来达到这个效果,

mutex.lock();
atomic
{
int temp = a[i];
a[i] =a[j];
a[j] = temp;
}
mutex.unlock();

如果有多个线程,你可以使用 POSIX 风格的读/写锁,如下所示,

pthread_rwlock_rdlock(rw_lock_ptr);
atomic
{
int temp = a[i];
a[i] =a[j];
a[j] = temp;
}
pthread_rwlock_unlock(rw_lock_ptr);

关于c - C中的细粒度锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16773880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com