Я запутался в различных способах создания потоков-членов для выполнения функций-членов экземпляра класса и в чем различия между ними: - Первый метод - использование лямбда-выражений
auto m_thread = std::thread([this]{run();});
Второй метод
auto m_thread = std::thread(std::bind(&MyType::run, this));
Третий метод
auto res = std::bind(&m_thread, std::bind(&MyType::run, this));
Четвертый метод -
auto res = std::bind(&m_thread, &MyType::run, this);
Здесь m_thread является переменной-членом класса MyType дано std::thread m_thread
, из которых this
является экземпляром, а run является функцией-членом того же класса. Дадут ли все они одинаковые результаты и эквивалентны ли они? Кроме того, в двух последних случаях, как заставить поток начать выполняться.