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;
}