Sobes.tech
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;
}

Бұл құралдар ағындар арасында жалпы деректерге қауіпсіз қатынауды қамтамасыз етеді.