База Hintsage

Многопоточность

Потоки, синхронизация, атомики и модель памяти C++.

Практика

Вопросы: Многопоточность

Определите последствие исключения, покинувшего функцию потока, и способ безопасно обработать его. Код должен завершиться без аварийного завершения процесса.

#include <stdexcept>
#include <thread>

void worker() {
    throw std::runtime_error("ошибка");
}

int main() {
    std::thread t(worker);
    t.join();
}

Что произойдёт при выполнении функции одним потоком, если обычный мьютекс повторно захватывается тем же владельцем?

#include <mutex>

void update(std::mutex& m, int& value) {
    std::lock_guard<std::mutex> first(m);
    ++value;

    if (value == 1) {
        std::lock_guard<std::mutex> second(m);
        value = 2;
    }
}
Программирование C++МногопоточностьРазработчик системного программного обеспечения на C++

Показано 120 из 50