C++Tingkat: Lanjutan7 min
Multi-threading Native (std::thread & std::mutex)
Manfaatkan seluruh core prosesor modern dengan multi-threading native C++11, sinkronisasi memori dengan std::mutex, dan pencegahan race conditions.
Eksekusi Thread Simultan & Proteksi Mutex
Pratinjau TerbukaKetika beberapa thread memodifikasi memori yang sama secara bersamaan, terjadi kondisi perlombaan data (data race). Gunakan std::mutex dan std::lock_guard untuk menjamin akses saling eksklusif yang aman.
Contoh Kode Sintaks
#include <iostream>
#include <thread>
#include <mutex>
#include <vector>
std::mutex g_kunciMemori;
int g_counterGlobal = 0;
void tambahData(int idWorker) {
for (int i = 0; i < 1000; ++i) {
// Lock guard otomatis melepas kunci saat keluar blok
std::lock_guard<std::mutex> proteksi(g_kunciMemori);
g_counterGlobal++;
}
}
int main() {
std::thread t1(tambahData, 1);
std::thread t2(tambahData, 2);
// Menunggu kedua thread selesai eksekusi
t1.join();
t2.join();
std::cout << "Nilai Akhir Counter: " << g_counterGlobal << std::endl;
return 0;
}Live Compiler Runner
Akses Kursus Wajib Login
Buka Akses Penuh Silabus & Praktikum
Masuk dengan akun GitHub, Google, atau Akses Cepat Developer untuk membuka seluruh materi mendalam, menjalankan compiler interaktif, mengerjakan kuis, dan menyimpan progres belajar Anda.
145+ Modul Lengkap•Tersimpan Otomatis•Sertifikat Kelulusan Resmi