Активный
- Тема Автор
- #1
Многопоточность позволяет выполнять код параллельно. Разберем основы.
Создание потоков
Передача параметров
Синхронизация
Важные моменты:
- Синхронизируйте доступ к общим данным
- Используйте мьютексы правильно
- Избегайте deadlock
- Тестируйте многопоточный код
Многопоточность улучшает производительность!
Создание потоков
Код:
#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
- Тестируйте многопоточный код
Многопоточность улучшает производительность!