Files
XCEngine/docs/api/threading/read-write-lock/writelock.md
ssdfasd d34d040563 Fix broken links in Threading API docs
Fix 14 broken cross-references in docs/api/threading/:
- lambda-task path: lambdatask -> lambda-task (5 occurrences)
- task-system-config path: tasksystemconfig -> task-system-config (6 occurrences)
- read-write-lock self-ref: readwritelock -> read-write-lock (6 occurrences)
- task-system cross-method: createtaskgroup/destroytaskgroup -> create-task-group/destroy-task-group
- thread cross-method: getcurrentid/getid -> get-current-id/get-id

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 01:30:37 +08:00

897 B

ReadWriteLock::WriteLock

void WriteLock()

获取写锁(独占)。如果有读者持有锁或有其他写者正在等待,当前线程将阻塞,直到获得独占访问权。

参数:

返回:

线程安全:

复杂度: 平均 O(1),写者饥饿时可能 O(n)

注意:

  • 写锁为独占访问,持有期间不允许任何读锁或写锁。
  • 写锁具有优先权,会阻塞后续到达的读者。
  • 同一线程不可重复 WriteLock。

示例:

#include "XCEngine/Threading/ReadWriteLock.h"
#include <vector>

XCEngine::Threading::ReadWriteLock rwLock;
std::vector<int> buffer;

void Append(int value) {
    rwLock.WriteLock();
    buffer.push_back(value);
    rwLock.WriteUnlock();
}

相关文档