Sobes.tech
Junior — Middle

Çox iplikli işləməyi idarə etmək üçün bilikləriniz hansı əsas mexanizmlərdir?

sobes.tech Süni İntellekt

AI-dan cavab

C/C++ dilində çox ipli idarəetmənin əsas mexanizmləri aşağıdakılardır:

  • Mutexlər (mutexes) — ümumi resurslara girişdə qarşılıqlı istisnadan istifadə etmək üçün.
  • Şərt dəyişənləri (condition variables) — ipların sinxronizasiyası üçün, müəyyən şərtlərin gözlənilməsi.
  • Semaforlar (semaphores) — resursla işləyən ipların sayını məhdudlaşdırmaq üçün.
  • Atomik əməliyyatlar (atomic operations) — kilidləmələr olmadan dəyişənləri təhlükəsiz şəkildə dəyişdirmək üçün.
  • İplər (std::thread) — ipların yaradılması və idarə olunması.

Mutex istifadəsinin nümunəsi:

#include <iostream>
#include <thread>
#include <mutex>

std::mutex mtx;
int counter = 0;

void increment() {
    for (int i = 0; i < 1000; ++i) {
        std::lock_guard<std::mutex> lock(mtx);
        ++counter;
    }
}

int main() {
    std::thread t1(increment);
    std::thread t2(increment);
    t1.join();
    t2.join();
    std::cout << "Sayğac: " << counter << std::endl;
    return 0;
}