浏览代码

Add lock for Concurrent

main
kevinyao0901 1 个月前
父节点
当前提交
84fd00cfb9
共有 1 个文件被更改,包括 12 次插入0 次删除
  1. +12
    -0
      README.md

+ 12
- 0
README.md 查看文件

@ -391,6 +391,12 @@ Status DBImpl::DeleteIndex(const std::string& fieldName) {
关键代码:
```cpp
Status DBImpl::Put(const WriteOptions& o, const Slice& key, const Slice& val) {
// 创建读写锁,放在函数内部
static std::mutex rw_mutex_; // 替换为 std::mutex,适用于 C++11 或更低版本
// 加写锁,确保写操作的原子性
std::unique_lock<std::mutex> lock(rw_mutex_);
...
// 在主数据库写入新数据
batch.Put(key, val);
@ -434,6 +440,12 @@ Status DBImpl::Put(const WriteOptions& o, const Slice& key, const Slice& val) {
关键代码:
```cpp
Status DBImpl::Delete(const WriteOptions& options, const Slice& key) {
// 创建读写锁,放在函数内部
static std::mutex rw_mutex_; // 替换为 std::mutex,适用于 C++11 或更低版本
// 加写锁,确保写操作的原子性
std::unique_lock<std::mutex> lock(rw_mutex_);
...
// 从主数据库删除目标键
batch.Delete(key);

||||||
x
 
000:0
正在加载...
取消
保存