VIP Многопоточность в C++

Активный
Статус
Сообщения
516
Лайки
32

8

месяц на сайте

Многопоточность позволяет выполнять код параллельно. Разберем основы.

Создание потоков
Код:
#include <iostream>
#include <thread>
using namespace std;

void threadFunction() {
    cout << "Поток выполняется" << endl;
}

int main() {
    thread t(threadFunction);
    t.join(); // ожидание завершения
    
    return 0;
}

Передача параметров
Код:
#include <iostream>
#include <thread>
using namespace std;

void printNumber(int num) {
    cout << "Число: " << num << endl;
}

int main() {
    thread t(printNumber, 42);
    t.join();
    
    return 0;
}

Синхронизация
Код:
#include <iostream>
#include <thread>
#include <mutex>
using namespace std;

mutex mtx;
int counter = 0;

void increment() {
    for(int i = 0; i < 1000; i++) {
        mtx.lock();
        counter++;
        mtx.unlock();
    }
}

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

Важные моменты:
- Синхронизируйте доступ к общим данным
- Используйте мьютексы правильно
- Избегайте deadlock
- Тестируйте многопоточный код

Многопоточность улучшает производительность!
 

1 человек читают эту тему (Всего: 1, Пользователей: 0, Гостей: 1)

Сверху