ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
tools_thread.h File Reference

线程原语:shared_mutex RAII宏、信号量封装和线程辅助工具。 More...

#include <condition_variable>
#include <shared_mutex>
#include <functional>
#include <semaphore>
#include <iostream>
#include <thread>
#include <mutex>
#include <list>

Classes

class  ngl::tools::sem
 计数信号量封装类。 More...
class  ngl::tools::sleep
 线程休眠辅助类。 More...

Namespaces

namespace  ngl::tools
 工具函数命名空间。

Macros

#define CONCAT_(a, b)
 宏连接辅助宏。
#define CONCAT(a, b)
#define lock_read(MUTEX)
 读锁RAII宏。
#define lock_write(MUTEX)
 写锁RAII宏。
#define nlock(MUTEX)
 调试锁宏。

Detailed Description

线程原语:shared_mutex RAII宏、信号量封装和线程辅助工具。

本文件提供了线程编程的基础工具,包括:

  • 信号量封装类sem
  • 线程休眠辅助类sleep
  • 读写锁的RAII宏
  • 调试锁宏

这些工具简化了多线程编程中的同步和休眠操作。

Macro Definition Documentation

◆ CONCAT

#define CONCAT ( a,
b )
Value:
CONCAT_(a, b)

◆ CONCAT_

#define CONCAT_ ( a,
b )
Value:
a##b

宏连接辅助宏。

用于将两个宏参数连接成一个标识符。

◆ lock_read

#define lock_read ( MUTEX)
Value:
std::shared_lock<std::shared_mutex> CONCAT(__read_lock_, __LINE__)(MUTEX)

读锁RAII宏。

使用std::shared_lock对std::shared_mutex进行读锁定。 自动在作用域结束时释放锁。

Parameters
MUTEX要锁定的shared_mutex

◆ lock_write

#define lock_write ( MUTEX)
Value:
std::lock_guard<std::shared_mutex> CONCAT(__write_lock_, __LINE__)(MUTEX)

写锁RAII宏。

使用std::lock_guard对std::shared_mutex进行写锁定。 自动在作用域结束时释放锁。

Parameters
MUTEX要锁定的shared_mutex

◆ nlock

#define nlock ( MUTEX)
Value:
lock_write(MUTEX)

调试锁宏。

当DECHECK_LOCK_TAR宏启用时,会打印锁的获取和释放信息。 否则,等同于lock_write宏。

Parameters
MUTEX要锁定的shared_mutex