std::atomic pour générer des UID
Hello,
J'ai besoin d'une fonction pour générer des UID de manière thread-safe. Je me suis dis que je devais pouvoir faire ça avec un std::atomic :
Code:
1 2 3 4 5 6
| using uid_type = std::uint32_t;
uid_type getNextUID() {
static std::atomic<uid_type> uid;
return uid++;
} |
Est-ce que c'est bon ? Est-ce que ça fait la même chose que cette version avec un mutex ?
Code:
1 2 3 4 5 6 7
| uid_type getNextUID2() {
static uid_type uid;
static std::mutex mutex;
std::lock_guard guard{mutex};
return uid++;
} |