Junior — Middle
130
Стандартты кітапхана қандай негізгі ресурстарды синхрондау үшін ұсынады?
Сұралған компаниялар
ГК Адепт
AI-дан жауап
sobes.tech AI
C++ стандартты кітапханасы көп ағынды ортада ресурстарды синхрондаудың бірнеше негізгі құралдарын ұсынады:
- std::mutex — ресурсқа қатынауды өзара айыру үшін негізгі мьютекс.
- std::recursive_mutex — бір ағын бірнеше рет иелене алатын мьютекс.
- std::timed_mutex және std::recursive_timed_mutex — тайм-аутпен иеленуге мүмкіндік беретін мьютекстер.
- std::lock_guard — мьютекске автоматты түрде иелік ету және босату үшін RAII-обертка.
- std::unique_lock — иеленуді кейінге қалдыруға, мьютексті қолмен босатуға және condition_variable-пен қолдануға мүмкіндік беретін икемді обертка.
- std::condition_variable — ағындар арасында күтуді және хабарлауды ұйымдастыру үшін шартты айнымалы.
std::mutex және std::lock_guard қолданудың мысалы:
#include <mutex>
#include <iostream>
std::mutex mtx;
int counter = 0;
void increment() {
std::lock_guard<std::mutex> lock(mtx);
++counter;
std::cout << "Counter: " << counter << std::endl;
}
Бұл құралдар ағындар арасында жалпы деректерге қауіпсіз қатынауды қамтамасыз етеді.