互斥锁实现操作的原子性代码
时间: 2024-05-01 09:16:01 浏览: 95
互斥锁示例代码
互斥锁是一种保护共享资源的机制,可以确保同一时间只有一个线程访问共享资源。在使用互斥锁时,需要在访问共享资源的代码块前加锁,在访问完成后解锁。
以下是一个使用互斥锁实现操作的原子性的示例代码(C++语言):
```
#include <mutex>
// 定义共享资源
int shared_data = 0;
// 定义互斥锁
std::mutex mtx;
// 访问共享资源的代码块
void access_shared_data()
{
// 加锁
mtx.lock();
// 对共享资源进行操作
shared_data++;
// 解锁
mtx.unlock();
}
```
在上述代码中,`std::mutex`是C++语言中的互斥锁实现,`mtx.lock()`和`mtx.unlock()`分别是加锁和解锁操作。在访问共享资源时,我们先加锁,执行完对共享资源的操作后再解锁,这样可以确保同一时间只有一个线程访问共享资源,从而实现了操作的原子性。
阅读全文